산을 넘고 물을 건너다

듣자니compass가 매우 좋고 강력하며 기술에 대한 지원이 광범위하다고 한다. 비록hibernate search와hibernate의 협조는 진주와 옥이 섞여 사용이 편리하다고 하지만 그래도 compass를 느끼는 것이 좋다고 한다.
우선 당연히compass의 공식 Sample부터 시작하여 버전:compass-2.1compass의samle에는 두 개의 demo가 있는데 하나는 클라이언트 기반library이고 하나는 웹+데이터베이스 기반의petclinic이다.정부의 데모로서 구멍이 빈번하다니 정말 엄숙하지 않다.
먼저 library를 말하고 Library Tests에서자바의 77번째 줄에 기묘한 이름의 Simple Date Format sdf = new Simple Date Format(Library. Meta Data. Birthdate. Format)가 나타납니다.그 결과 클래스를 찾을 수 없었다. 그녀를 막론하고 어쨌든 날짜 포맷 문제였다. 공식적으로 쓰는 방법으로 바꾸었다. SimpleDateFormatsdf = new SimpleDateFormat("yyy-MM-DD").다행히 문제 하나만 있어서 테스트할 수 있어요.게다가petclinic를 성공적으로 배치하려면 신경을 써야 한다.공식 Samples\petclinic\아래에 Warr가 있는데, 이치대로라면 데이터베이스 연결을 조금만 설정하면 run이 될 수 있습니다.하지만 너무 sorry, 이러면 안 돼.그렇지 않으면 네가 인내심을 가지고 해 볼 수 있다.따라서 원본 프로그램을 이용하여 다시 컴파일하여 발표하는 것이 가장 좋다.먼저 제 배치 환경을 소개하겠습니다.spring2.5+hibernate3.2+mysql5.1+tomcat6.0+compass2.1, 환경에 따라 다를 수 있습니다.먼저 다음과 같은 순서를 밟아라.
    1.새 웹 프로젝트를 만듭니다. 예를 들어 mystu라고 합니다. 그리고samples\petclinic\src\java에서 모든 것을 mystu의 src 아래로 복사합니다.samples\petclinic\src\test 아래의 모든 copy를 src 아래로 이동합니다.Samples\petclinic\war에서 모든 것을 mystu의 WebRoot에 복사합니다.Samples\petclinic\war\WEB-INF\classes의 네 개의 자원 파일을 src 아래로 복사합니다.
    2.작은 버그를 수정합니다: 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(주: 모델에서 관련 가방이 있다고 했지만 찾지 못했습니다) 그래서 저는 Sample의ojb부서 delete를 삭제했습니다.그래서 이때db-ojb-2.0.4.jar은 있어도 되고 없어도 된다.
 
 
 4.데이터베이스 가져오기:samples\petclinic\db\mysql에 initDB가 있습니다.txt, mysql에 로그인하면 source initDB.txt는 데이터베이스를 만들면 됩니다.또한samples\petclinic\db 아래의 populate DB를 이용할 수 있습니다.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 연결을 설정하면 됩니다.
 
자바아이의chanson의 블로그http://chanson.iteye.com/blog/204180는 저에게 큰 참고를 해 주셔서 감사합니다.

좋은 웹페이지 즐겨찾기