关于如何建立compass索引为项目的相对路径问题,最初是在本地测试,可以随意建立索引位置, 但是如果借用虚拟主机来发布项目,则不行,原因是虚拟主机并不能给我们随意访问磁盘的权限。本次项目是在spring中整合compass,最初的本地测试:compass在spring的配置内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
">
<context:component-scan base-package="com.asm" />
<bean id="localEMF"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="jpaDemo" />
</bean>
<bean id="txManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="localEMF" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<!-- compass扫描相关的配置 start -->
<bean id="compass" class="org.compass.spring.LocalCompassBean">
<!-- 指定映射类方式 -->
<property name="classMappings">
<list>
<value>com.asm.product.entity.Axx</value>
<value>com.asm.product.entity.Bxx</value>
</list>
</property>
<property name="compassSettings">
<props>
<!-- 索引存放位置 -->
<prop key="compass.engine.connection">
file://e:/indexStore
</prop>
<prop
key="compass.engine.highlighter.default.formatter.simple.pre"><![CDATA[<font color='red'>]]></prop>
<prop
key="compass.engine.highlighter.default.formatter.simple.post"><![CDATA[</font>]]></prop>
<prop key="compass.transaction.factory">
org.compass.spring.transaction.SpringSyncTransactionFactory
</prop>
</props>
</property>
<property name="transactionManager" ref="txManager" />
</bean>
<!-- CompassGps为CompassGpsDevice提供Compass对象,他们一起为程序提供索引的实时更新 -->
<bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps"
init-method="start" destroy-method="stop">
<property name="compass" ref="compass" />
<property name="gpsDevices">
<list>
<bean
class="org.compass.spring.device.SpringSyncTransactionGpsDeviceWrapper">
<property name="gpsDevice">
<!-- 为gpsDevice属性注入针对JPA的GPS驱动 -->
<bean
class="org.compass.gps.device.jpa.JpaGpsDevice">
<property name="name" value="jpaDevice" />
<property name="entityManagerFactory"
ref="localEMF" />
<property
name="injectEntityLifecycleListener" value="true" />
</bean>
</property>
</bean>
</list>
</property>
</bean>
<!-- compass扫描相关的配置 end -->
</beans>
这样配置后,在本地索引肯定没问题,但是我们无论如何修改
<prop key="compass.engine.connection">
file://e:/indexStore
</prop>
这段配置,它生成的索引路径总会是依赖于它的一个绝对路径,并不会依赖于当前项目中生成一个相对路径的索引,由于本身对compass认识并不深刻,加之并没有时间认真去看它的一些源码,这里只简要地就说下关于索引建立时compass的处理方式:如果你指定了connection配置来建立索引位置,它就会根据它的值来作为相对路径来生成索引的绝对路径。即只需在项目中为如果你配置了org.compass.spring.LocalCompassBean bean对象增加如下配置:
<!-- 索引存放位置 -->
<property name="connection">
<value>/indexStore</value>
</property>
这样建立的索引位置就是一个相对路径。至此问题解决。
但是这样配置后,也引发了项目中的一个小问题,在项目中用到了ajax异步交互,而ajax后台处理程序是servlet,最开始是直接写了一个工具类LogicBeanUtil来得到要用得业务层bean,但是继续使用它来处理,又存在初始化spring容器错误,由于spring容器中配置的connection[compass索引]依赖于整个web容器,而最初我涉及的logicBeanUtil是脱离了web容器,所以这样做并不能得到业务层bean对象,其实在servlet中可以有一很方便的方式注入业务层对象,代码如下:
WebApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(getServletContext());
UserService userService = (UserService) ctx.getBean("userServiceBean");
至此问题得已解决。
分享到:
相关推荐
献出本网吧使用了5年的网吧留言本,此留言程序本网吧从2005-12-13 开始用到现在,使用至今留言总数达1000多条.为庆祝留言满1000条,今晚...安装过程中遇到问题可跟贴,本人随时在线回复! 使用说明:管理账号 admin 密码
安装过程中遇到问题可跟贴,本人随时在线回复! 使用说明:管理账号 admin 密码 admin 点界面上管理后台登陆后,在信息设置里可进行密码修改,注:用户名不能修改.留言簿题目名字在book/UU/config.asp修改,用记事本...
2、软件为英文,都是很简单的英文,很容易上手,如果大家在使用中有什么问题请跟贴询问,我会第一时间解答,如果有可能的话,后期我会陆续出相关教程。 3、一般用于SMT、PCB厂家、PCB设计等场合,比CAM350好用多...
前台:相关内容的跟贴、更贴、回帖、发新帖等B.后台:主要个人主页相关模块的增,删,查,改,图片上传 C .实现功能: 1.公共聊天,2.资料管理,3.论坛,4.新闻中心,5.网站链接,6.帮助,7.站内资源搜索,8.个人博客,9....
距离上次发这个有段时间了,这段时间我自己也一直在用和改进,但肯定还有些问题。如果使得过程中遇到问题可以跟贴或私信我,现在很少时间上来,可能一时半会回复不了,见谅。 在确认使用这个之前,我要声明一下 本...
1. **灵活处理尺寸问题**:针对尺码不合适的问题,客服应该提供解决方案,比如建议顾客使用半码垫或后跟贴,并在不影响二次销售的情况下提供换货服务。 2. **理解顾客需求**:当顾客对商品外观或款式不满意时,客服...
有什么错误请跟贴报告,有什么好的建议请跟贴报告! 银行错误已经修正 关于和阳光短信重叠问题,请关闭阳光短信首页顶部广告即可. 其它错误报告的错误我没有发现,有待验证. 如有错误继续回复我. 在发布...
通过论坛系统,用户可以发表自己的言论(主题贴),其他的用户可以对主题贴进行评论(跟贴)或发表更多的言论(主题贴)。 1. 功能划分 (1)用户功能 用户注册:用户可以注册为该系统成员(需超级管理员审批后方可...
龙网天涯推广小助手是一款天涯论坛推广软件,龙网天涯推广小助手支持天涯论坛论坛发贴,论坛跟贴,论坛顶贴,发站内信,发天涯问答等功能,可以选择过虑已发送数据。 龙网天涯推广小助手功能: 1.支持批量导入帐号...
目前还有一个小问题,如果有朋友有兴趣帮我解决一下在下不胜感激 你翻到最后一页的时候如果只有一行会出现空白和undefined.这个问题我试了很多方法一直没有很妥当的解决. 注:下面一些地方出现笑脸表情的是 大写的d ...
5. 学习穿袜:演示正确的穿袜步骤,如袜跟朝下、袜口套脚踝、袜头包脚趾、袜跟贴脚后跟,然后轻轻拉起。幼儿模仿练习,教师进行个别指导。 6. 结束语:强调保持个人卫生的重要性,如每天洗脚换袜,培养幼儿自己穿...
一个java正规表达式工具类 关键字: 一个java正规表达式工具类 猛然想起两年写了一个java的正规表达式的java工具类,分享一下,有...在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧.
1. 需求分析:在这个阶段,我们需要深入了解客户业务和数据处理的需求,以便确定数据库需要解决的问题和任务。 2. 概要设计:这个阶段主要工作是绘制数据库的E-R(实体-关系)模型图,用以确认需求信息的正确性和...
首先,设计数据库的初衷在于解决复杂数据管理问题。当数据量大且关系复杂时,良好的设计可以节省存储空间,保证数据完整性,便于系统开发。反之,设计不当会导致数据冗余、空间浪费,甚至出现数据更新和插入的异常。...
最近一直在搞Android上的蓝牙应用,每次在PC上调试蓝牙设备中的数据还可以,但是在Android手机上就非常不方便,所以自己写了个简单的Android蓝牙调试助手,希望各位下载使用,如有问题和Bug跟贴。
当然,由于本人水平有限,在汉化过程中难免会有遗漏或出错的现象,如果你发现了,请到论坛上跟贴告知,我会尝试修改,并在以后的版本中更正,谢谢!!! 部分菜单选项的作用尚未了解,因此就保留原英文或按照单词...
还没有来得及准备文档,先放上来让大家有点新东西下载,这个程序是我早期的作品,不过本来代码一直没有公开,因为一旦公开,加密就没有意义了,不过因为网站改版这么久,觉得很对不起大家,就把这个还...有问题跟贴。
在IT行业的面试中,尤其是针对软件开发人员,面试官通常会考察候选人的技术实力和问题解决能力。本压缩包文件“面试王系列2(笔试)”包含了一些关键领域的知识,包括C语言、Java以及C++的基础和进阶题目,旨在帮助...
这可以通过使用“格式”菜单中的“更改大小写”命令来实现,这是一种常见的文本格式化技巧。 ### 9. Excel 的数据处理 第九个例子涉及Excel的数据处理功能。排序、汇总、筛选等操作通常位于“数据”菜单下。这些...