`
exceljava
  • 浏览: 160261 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

跋山涉水解析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 给了我很大的参考,在此表示感谢。

6
2
分享到:
评论
1 楼 liwei 2009-05-12  
别拿这些施舍的东西出来

相关推荐

    compass-sample:Telrik Compass 示例

    Compass Sample: Telrik Compass 示例项目是一个用于展示如何在Cordova应用中利用Compass API的实践案例。这个项目主要是为了帮助开发者理解如何在JavaScript环境中获取设备的罗盘数据,以便进行方向感知或导航功能...

    compass完整可用项目

    【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...

    mongodb安装包和compass

    Compass是MongoDB的官方图形界面工具,它提供了一个用户友好的界面,用于可视化数据库和集合,帮助开发者和管理员进行数据探索、查询构建、性能分析以及基本的数据库管理。通过Compass,用户可以轻松地浏览和操作...

    compass教程.pdf

    COMPASS 教程Pdf COMPASS 是一款专业的油气田设计和生产软件,主要用于油气田的规划、设计和生产过程。下面是 COMPASS 的一些重要知识点: 1. COMPASS WELLPLAN FOR WINDOWS 功能简介:COMPASS 的核心功能包括 ...

    compass搜索引擎技术

    Compass搜索引擎技术是一种基于Lucene的全文检索框架,它提供了更高级别的API和集成机制,使得在Java应用程序中实现搜索引擎功能变得更加便捷。Compass的主要目标是将全文索引能力无缝地融入到现有的业务应用程序中...

    java搜索 compass资料

    根据题目中的描述,“去官方网站下载compass的jar包”,这里可以理解为安装Compass的基本步骤。对于2.1版本的Compass,首先需要访问其官方网站(http://www.compass-project.org/)下载所需的JAR包。在下载过程中,...

    基于Luncene的compass框架详解-java

    1. **下载与安装**: 访问官方网站或相关资源站点下载Compass框架及其依赖的jar包,如Compass框架、lucene-analyzers、lucene-core、lucene-highlighter等。确保所选版本兼容当前项目环境。 2. **配置环境**: 在项目...

    mongodb compass1.15.1官网版 免安装直接使用

    MongoDB Compass是MongoDB官方提供的一款图形化管理工具,它为MongoDB数据库的使用者提供了直观的界面,方便进行数据浏览、查询、操作以及性能分析。MongoDB Compass 1.15.1是这个系列的一个版本,它无需安装,可以...

    compass_使用详解.pdf compass_教程 compass_试用案例

    ### Compass 使用详解 #### 一、Compass 概述 Compass 是一款开源的 Java 库,用于简化 Lucene 的使用。它通过提供类似于 Hibernate 的对象关系映射(ORM)功能,使得开发者能够更加轻松地将 Java 对象映射到 ...

    mongodb官方客户端可视化工具compass-1.26.1-win32-x64

    MongoDB Compass是MongoDB官方提供的一款强大的图形化管理工具,专为MongoDB数据库设计,用于帮助用户更加直观地理解和操作数据库。在这个版本"mongodb官方客户端可视化工具compass-1.26.1-win32-x64"中,我们关注的...

    Compass 的java代码

    **Compass:Lucene的高级封装工具** Compass是一款基于Apache Lucene的全文搜索引擎库,它为Java开发者提供了一个高级的、易于使用的搜索框架。在Java应用中集成搜索引擎功能时,Compass提供了一种简化的方式来管理...

    Compass技术文档

    - **Compass框架**:可以通过访问官方网站 [http://www.compassframework.org/](http://www.compassframework.org/) 下载Compass框架及其相关jar包。 #### 四、使用流程 使用Compass的过程主要包括以下几个步骤: ...

    compass annotation关联关系

    Compass 是一个全文搜索引擎库,它是对 Lucene 的封装,为 Java 应用提供了一种简单易用的接口。在 Compass 中,Annotation 是一种元数据注解方式,它允许开发者在对象模型上直接定义搜索映射,使得对象与索引之间的...

    Compass原理深入学习笔记

    【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...

    Compass全文检索系列之一:Compass入门

    Compass全文检索系列之一:Compass入门 在IT领域,全文检索已经成为数据分析和信息检索的重要技术,尤其是在大数据时代。本文将介绍Compass,一个基于Lucene的全文搜索引擎库,为Java开发者提供了一种简单易用的...

    compass的几个入门网页

    4. 阅读官方文档和在线教程,加深理解。 5. 参考其他开发者的工作,了解如何在实际项目中使用Compass。 总之,Compass为Web开发者提供了一个强大的工具,通过它可以更有效地管理和组织CSS代码,提高开发效率。作为...

    mongodb-compass-1.17.0-win32-x64 MongoDB可视化工具Compass

    MongoDB Compass是MongoDB公司开发的一款强大的图形化管理工具,专为MongoDB数据库设计,用于帮助用户更加直观地理解和操作NoSQL数据库。本压缩包文件"mongodb-compass-1.17.0-win32-x64"包含了适用于Windows 32位和...

    Lucene+compass学习资料

    Lucene的核心功能包括分词、索引构建、查询解析、排序以及结果集的过滤和高亮。其索引结构基于倒排索引,能快速定位到包含特定词汇的文档,使得搜索性能卓越。在学习Lucene时,重点应掌握如何创建索引、执行查询以及...

Global site tag (gtag.js) - Google Analytics