跋山涉水解析compass官方sample

    听说compass很好很强大,对技术的支持广泛,尽管hibernate search和hibernate配合可谓珠联璧合,使用方便,但还是要感受感受compass的好。


    首先当然从compass的官方sample开始,版本:compass-2.1  compass的samle下有两个demo,一个是基于客户端的library,一个是基于web+database的petclinic.作为官方的demo,竟然漏洞频频,简直太不严肃。


    先说library,在LibraryTests.java的第77行,竟然出现一句命名奇妙的
    SimpleDateFormat sdf = new SimpleDateFormat(Library.MetaData.Birthdate.Format);
    结果是找不到类,不管她,反正是个日期格式化问题,改成官方的写法:
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD");
    还好,只有一个问题,可以测试了。
 
    再说petclinic,要让它成功部署可要费点心思了。官方的samples\petclinic\下有个war,照理我们可以直接稍微配置个数据库连接即可run起来。但是很sorry,不可以这样。不然你可以试试,只要你由耐心。所以,最好还是利用源程序重新编译发布。先介绍下我的部署环境,spring2.5+hibernate3.2+mysql5.1+tomcat6.0+compass2.1,不同环境可能有所不同。先按如下步骤来。


    1.新建个web项目,比如我的叫mystu,然后将samples\petclinic\src\java下所有东西copy到mystu的src下。将samples\petclinic\src\test下所有copy到src下。将samples\petclinic\war下所有东西copy到mystu的WebRoot下。将samples\petclinic\war\WEB-INF\classes下的四个资源文件copy到src下。


    2.修改一个微小的bug: org.compass.sample.petclinic下的AbstractClientTests.java有方法未定义。将所有的hits.resource(0).get(Petclinic.MetaData.LastName.Name)改成hits.resource(0).getValue(Petclinic.MetaData.LastName.Name)


    3.自己加类库。compass最让我诟病的应该是没有给出引用的library了。并且也没有任何readme或者document之类的说明。我通过不断运行,出现excepion,然后将缺少的类手动一个个加进去,费劲了九牛二虎之力。才最终完善了需要的类库。下面列出需要使用的lib:

 

    spring-2.5.5.jar
    spring-webmvc.jar
    hibernate3.jar
    antlr-2.7.6.jar
    dom4j.jar
    commons-logging.jar
    log4j.jar
    lucene-core-2.4.0.jar
    compass-2.1.1.jar
    jstl.jar
    standard.jar
    commons-collections-3.2.1.jar
    db-ojb-1.0.4.jar
    mysql-connector-java-5.0.3-bin
    jta.jar

 这些library是必须的,否则运行分别会出现问题。最后,因为org.compass.sample.petclinic.ojb中的PersistenceBrokerClinic引用了org.springframework.orm.ojb.support.PersistenceBrokerDaoSupport包spring2.5 的orm中已经不提供支持,详细见:http://forum.springframework.org/archive/index.php/t-30463.html (注:这里说到在model中由相关的包,但没有找到)所以,我直接将sample的ojb部门delete掉了。所以,此时db-ojb-2.0.4.jar可有可无。

 

 

 4.导入数据库:samples\petclinic\db\mysql有个initDB.txt,登陆mysql后,source initDB.txt创建数据库即可。并且,可以利用samples\petclinic\db下的populateDB.txt到入原始数据。

 


  5.然后,修改数据库连接了。WEB-INF/jdbc.properties.我使用的是mysql,故采用了mysql的连接配置。下面是去掉comments后的完整配置。

 

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/petclinic
jdbc.username=name
jdbc.password=pass
hibernate.dialect=org.hibernate.dialect.MySQLDialect
petclinic.jdbcImplBeanName=mysqlClinic

 

    6.好了,到了这里,可以启动tomcat发布了。可以成功运行起来了。运行起来后,我还碰到了java.lang.NumberFormatException。或许我不能否认compass是一个好的开源产品,但至少,它的sample不是一个好的sample。

 

 

    附:下面是我碰到的exception,下面列出的仅仅只是我想写这边blog然后保留下来的,其实刚开始还有,恕我不想还原现场了:
    java.lang.ClassNotFoundException: javax.transaction.TransactionManager (缺少jta包)
    java.io.FileNotFoundException: class path resource [petclinic.hbm.xml] cannot be opened because it does not exist (没有将petclinic.hbm.xml放入src下)
    java.lang.ClassNotFoundException: org.apache.commons.collections.SequencedHashMap(缺少commons-collections包)
    org.compass.core.config.ConfigurationException: DTD system id [http://www.compass-project.org/dtd/compass-core-mapping-2.2.dtd] not found at [/org/compass/core/compass-core-mapping-2.2.dtd]
    (这个算是我的错误,将新发布的compass2.2中的compass配置文件放入了src下,我以为或许2.2中会改正这些问题呢,不过很遗憾,没有)
    java.util.MissingResourceException: Can't find bundle for base name views, locale zh_CN
    (没有将资源文件放入src下。)
    java.lang.ClassNotFoundException: antlr.ANTLRException
    (缺少antlr.jar包)
    java.lang.NumberFormatException: null(程序没有进行表单验证,太不敬业了)。

 

   附件是可更改后的可运行版本,因为javaeye上传文件10m限制的原因,去掉了jar中的compass.jar. 如需运行,db下由数据库文件,建好数据库,再配置好jdbc连接即可。

 

  javaeye的chanson的博文http://chanson.iteye.com/blog/204180 给了我很大的参考,在此表示感谢。

compass2.1的相关jar包 compass的jar包 包括: compass-2.1.0.jar compass-index-patch.jar lucene-core.jar lucene-highlighter.jar paoding-analysis.jar 立即下载

相关推荐

国央企创新负责人在推进内部技术转化时,如何实现跨部门、跨单位的协同资源对接?.docx

国央企创新负责人在推进内部技术转化时,如何实现跨部门、跨单位的协同资源对接?

一个简单的COMPASS应用实例(compass1.1)

首先你要下载Compass framework: http://www.opensymphony.com/compass/ 你需要在你的class path 中添加3个jar: compass.jar,commons-logging.jar,lucene-core.jar. 在你的项目中创建下面的目录或文件(可以根据自己的定义来改动): compass.cfg.xml - org    - c...

compass 484

高校技术转移办公室在科技成果转化过程中如何提升服务效率?.docx

高校技术转移办公室在科技成果转化过程中如何提升服务效率?

Compass学习案例

Compass介绍: Compass是一个Java搜索框架。它封装了Lucene,增加了一些Lucene不支持的特性(例如实时更新索引),支持各种数据(Java对象、xml、json)到索引的映射,支持各种数据源(JDBC, Hibernate, iBatis)。 Compass所依赖的jar包: pom.xml代码 <project xmlns="http://maven.a

yangchao18629233301的专栏 1412

全国街道行政边界矢量数据集

## 数据内容 - 行政区边界矢量数据:以街道为单位,提供精确的行政区划分。 - 格式:shp格式,方便用户在GIS软件中进行进一步分析和应用。 - 坐标系:国家2000高斯克里格投影坐标系,确保数据的准确性和一致性。

新版课件清华大学机器学习课件-9第九讲-adaboost.pdf

新版课件清华大学机器学习课件-9第九讲-adaboost

Compass2.2 学习笔记

学习Compass是个很快速的过程,它不像其他框架需要花很多时间学习它的API和了解它的工作流程.似乎Compass就是两个框架的组合版本. 为什么这样说呢?看下它的工作流程就知道了: 这个结构和Hibernate很相像,无非就是Hibernate把JDBC封装了一把.所以从结构上来说,只要我们了解了Hibernate,就已经对Compass有了了解.那么Hibernate需要提供API和

Bannings的专栏 9252

金属部件器具构件腐蚀剥落损坏识别分割数据集labelme格式1043张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

Unity ECS 架构设计

当游戏同时存在1万个单位时,传统OOP架构因内存不连续、缓存命中率低、单线程瓶颈导致性能暴跌。ECS(实体-组件-系统)通过将数据按类型连续存储,实现高缓存命中率;逻辑与数据分离,支持多线程并行处理。本文以Unity DOTS为例,详解ECS原理、内存布局、Job System与Burst优化,并提供万级单位实战代码与纯C#手写ECS实现,助开发者从“听说过”到“能设计”,彻底掌握高性能游戏架构核心。

sNameNo的博客 432

产业园区如何高效匹配企业与科技成果转化资源?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何提升科技成果推介的转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【Unity知识速递】第10期 Unity GC 零分配实战:从 UnityEngine.Pool 到手动 GC 控制的全链路优化

看似简单,但每次 Instantiate 都在托管堆上分配内存,几秒钟后 GC 就会触发一次回收,造成明显卡顿。用集合池(ListPool、DictionaryPool)后,这些临时集合全部可复用,热路径零分配。零分配(Zero Allocation)优化的核心思路是:在热路径(Update、FixedUpdate、每帧执行的逻辑)中完全避免堆内存分配,让 GC 几乎无工可做,自然就不会产生卡顿。核心原因:对象池 + 集合池 + 零分配代码改造后,运行时几乎不产生新的垃圾,GC 自然就没活干了。

crystal_WJT的博客 432

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文针对三电平维也纳(VIENNA)整流器在中大功率应用中面临的直流侧中点电位不平衡问题,提出一种基于电容电压差值补偿的主动均衡控制策略。研究以电压电流双闭环PI控制为基础,在电压外环中引入上下电容电压差值作为反馈信号,结合空间矢量脉宽调制(SVPWM)技术,利用冗余小矢量的时间分配自由度实现对中点电位的闭环调节。通过MATLAB/Simulink搭建仿真模型,在800 V直流母线电压、20 kHz开关频率、10 kW负载功率等工况下进行验证。结果表明,该方法不仅能够有效稳定直流母线电压,还可显著抑制中点电位偏差,使其维持在极小范围内,均衡效果远优于未投入补偿的情况,同时保持较低的输入电流总谐波畸变率(THD)。该方案实现了“电压稳定—电流低谐波—中点均衡”三者的协同优化,无需增加额外硬件,具有良好的实用性与工程推广价值。; 适合人群:具备电力电子与电力传动基础知识,从事新能源发电、电动汽车充电、工业电源等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:①掌握三电平VIENNA整流器的工作原理与中点电位波动的成因;②学习双闭环PI控制的设计与参数整定方法;③理解并应用基于SVPWM冗余矢量的中点电位主动平衡策略;④开展类似拓扑的仿真建模与控制算法研究。; 阅读建议:此文理论推导与仿真验证结合紧密,建议读者在理解控制原理的基础上,动手复现Simulink仿真模型,重点关注SVPWM模块中冗余矢量时间分配的实现细节,并尝试调整系统参数以观察控制效果的变化,从而深化对中点平衡能力边界的认识。

运放与TIA的基础教程以及LTspice工程

三电平维也纳VIENNA双闭环控制整流器仿真(Simulink仿真实现)

内容概要:本文针对三电平维也纳(VIENNA)整流器在中大功率场合的应用,重点研究其电压电流双闭环控制与直流侧中点电位平衡问题。通过构建基于同步旋转坐标系的双闭环PI控制系统,实现对800V直流母线电压的稳定控制和输入电流的快速跟踪。为解决上下电容电压不平衡问题,提出一种基于电容电压差值补偿的中点电位平衡策略,该策略将电压差值引入SVPWM调制环节,利用冗余小矢量的时间分配自由度实现电荷的定向调节,从而在不影响主控制性能的前提下有效抑制中点电位漂移。仿真结果表明,所提方法不仅确保了直流母线电压的精确跟踪和输入电流的低谐波(THD)特性,还显著提升了上下电容电压的均衡度,验证了该控制策略的可行性与有效性。; 适合人群:从事电力电子、新能源变换、电气自动化等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于掌握三电平VIENNA整流器的工作原理与双闭环控制设计方法;②学习SVPWM调制技术及其在中点电位平衡中的应用;③为电动汽车充电桩、航空电源、通信电源等中大功率单向整流系统的研发提供技术参考和仿真验证方案。; 阅读建议:读者应结合Simulink仿真模型,重点关注双闭环PI参数整定、SVPWM实现逻辑及中点平衡补偿环节的搭建,通过对比投入与未投入补偿的仿真波形,深入理解控制策略的作用机理。同时,可进一步探究电网不平衡、轻载等复杂工况下的系统性能。

储能双向Buck-Boost+模型预测电流控制+电压下垂控制仿真【附参考文献】(Simulink仿真实现)

内容概要:本文针对储能系统中的双向Buck-Boost变换器,基于Simulink平台构建了集成模型预测电流控制与电压下垂控制的仿真模型,旨在实现对储能单元充放电过程的高精度、高动态性能调控。通过引入模型预测控制(MPC),提升了电流环的响应速度与稳态精度,有效抑制了传统控制策略中存在的滞后与超调问题;同时结合电压下垂控制策略,实现了多储能单元在直流微电网中的即插即用与功率均流分配,增强了系统的可扩展性与鲁棒性。文中详细阐述了控制算法的设计原理、系统建模步骤及关键参数整定方法,并通过仿真实验验证了该复合控制策略在负载突变、功率切换等动态工况下的优异性能,包括快速的动态响应、良好的稳态精度以及稳定的系统运行特性,所附参考文献为理论分析提供了有力支撑。; 适合人群:电力电子、电气工程、自动化、新能源科学与工程等相关专业的研究生、科研人员及从事储能系统、直流微电网控制开发的工程师。; 使用场景及目标:①研究双向DC-DC变换器在储能系统中的建模与控制方法;②掌握模型预测控制与下垂控制在Simulink中的联合实现技术;③开展直流微电网中多储能系统协调控制的仿真验证、算法对比与性能优化研究。; 阅读建议:建议结合提供的Simulink仿真模型进行同步学习,重点关注模型预测控制的成本函数设计、权重系数调整及下垂控制参数对功率分配的影响,通过对比不同工况下的仿真波形,深入理解控制策略的动态行为,并参考所附文献深化对先进控制理论的理解,适合作为科研课题或工程项目的技术参考与实现蓝本。

上一篇: Ubuntu安装使用SSH
下一篇: Django does not currently work with Python 3.0
excellentjava
博客等级 码龄20年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值