2013-02-24 4 views
0

내 응용 프로그램을 ActiveMQ 5.5.1에서 ActiveMQ 5.8.0으로 마이그레이션했습니다.ClassNotFoundException : ACtiveMQ의 KahaPersistenceAdapter 5.8

<persistenceAdapter> 
    <kahaPersistenceAdapter directory="${activemq.base}/data/msg" maxDataFileLength="20 Mb"/> 
    </persistenceAdapter> 

을하지만 ActiveMQ를 시작할 때, 나는 wrapper.log 파일에서 예외를 다음 얻을 :

INFO | jvm 1 | 2013/02/24 10:43:28 | Caused by: java.lang.ClassNotFoundException: org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter 
INFO | jvm 1 | 2013/02/24 10:43:28 | at java.net.URLClassLoader$1.run(Unknown Source) 
INFO | jvm 1 | 2013/02/24 10:43:28 | at java.security.AccessController.doPrivileged(Native Method) 
INFO | jvm 1 | 2013/02/24 10:43:28 | at java.net.URLClassLoader.findClass(Unknown Source) 
INFO | jvm 1 | 2013/02/24 10:43:28 | at java.lang.ClassLoader.loadClass(Unknown Source) 
INFO | jvm 1 | 2013/02/24 10:43:28 | at java.lang.ClassLoader.loadClass(Unknown Source) 
INFO | jvm 1 | 2013/02/24 10:43:28 | at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.loadClass(XBeanQNameHelper.java:107) 
INFO | jvm 1 | 2013/02/24 10:43:28 | at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.getBeanInfo(XBeanQNameHelper.java:72) 

참고 : 내 응용 프로그램은 다음과 같은 activemq.xml 파일에서 지속성 구성이 내 응용 프로그램이 저장된 큐의 메시지를 가지고 activemq 5.5.1에 의해 수행되며 지속성 구성을 변경할 수 없습니다.

답변

1

activemq-all-5.8.0.jar을 클래스 패스에 넣었습니까?

KahaPersistenceAdapterdeprecated이지만 여전히 병에 포함되어 있습니다.

+0

@Tim Bish : 감사. 나는 classpath에'activemq-all-5.8.0.jar'을 넣고 내 문제를 수정했지만 또 다른 예외는 던졌습니다 :'java.lang.ClassNotFoundException : org.eclipse.jetty.http.security.Constraint' – MJM

+0

전체 스택을 제공 할 수 있습니까? 자취? 부두 단지에 대한 의존성이 깨진 것 같습니다. – ericson

+0

해결 :), 나는'activemq 5.8'의'jetty.xml' 파일을'activemq 5.5'로 대체했습니다. 고마워요. – MJM

3

v5.8.0에서는 브로커를 실행하기 위해 필요한 jars의 양을 줄이기 위해 종속성이 조금씩 분리되었습니다. Kaha 어댑터는 activemq-amq-store 구성 요소 내에 있으므로 사용할 수 있도록 프로젝트에 가져와야합니다.

이 어댑터는 v9.0에서 사라 졌으므로 지원되는 어댑터 중 하나로 이동하는 것이 좋습니다. 현재 기본 어댑터는 KahaDB이며 activemq-kahadb-store에 있습니다. 더 빠른 색인을 갖고 있지만 아직 젊고 몇 가지 문제가있는 LevelDB 어댑터를 사용해 볼 수도 있습니다.

이전 저장소에서 새 KahaDB 저장소로 쉽게 이동할 수있는 마이그레이션 도구는 없지만 KahaDB를 사용하여 새 브로커를 설정하고 네트워크 커넥터를 사용하여 이전 브로커에 연결할 수 있습니다. 새로운 중개인이 이전 중개인의 이전 저장소에 메시지가있는 대상을 등록하면 mew 중개인은 모든 메시지를 유출시켜 KahaDB 저장소에 저장해야합니다.