2014-12-11 10 views
0

기본 ActiveMQ Broker가있는 번들을 배포 한 일반 Felix 기반 OSGI 환경이 있습니다. 나는 다른 OSGI 환경에 다른 번들을 설치하고 싶다. Active Directory 웹 콘솔 파일이 배치 될 임베디드 부두가 있어야한다. 내가 포함 된 부두 산란이 번들 (BundleActivator를 시작 방법)의 일환으로 war 파일을 배포하여 시도했다, 그러나 그것은 나에게 다음과 같은 예외 제공 -Felix에 활성 MQ 웹 콘솔 배포

Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:431) 
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:393) 

내가 번들 클래스 패스에있는 서블릿 API 항아리가를 (패키지를 가져 왔고 번들 배포 중에 해결됨). 또한 activemq-web-console-5.10.0.war 파일의 lib 폴더에 Servlet-API jar도 포함되어 있다는 것을 알게되었습니다.

Servlet-API jar가 중복되어이 예외가 발생하고 Servlet-API jar가 내 번들 클래스 경로에서 제거되었다고 생각합니다. 가져 오기를 제거하고 해당 패키지를 내보내는 번들 배포를 취소하여 시도했습니다.)하지만이 경우에는 내 번들이 배포되지 않고 배선 예외가 발생했습니다 (부두 의존성에 분명히 해당 병이 필요함).

war 파일을 압축하여 다시 압축하고 시도하고 싶지 않습니다.

참고 사항 :이 war 파일은 Karaf에서 성공적으로 배포되었지만 일반 Felix 기반의 OSGI env에서 자체 felix 실행기를 사용하여 배포하는 데 실패했습니다.

도와주세요! 임베디드 부두를 포함하는 번들이 배포됩니다

편집,하지만 난 그것을 시작할 때, 부두 예외 위 (war 파일을 배포)를 시작하는 동안이 발생되고

최종 편집

답변

0

흠, 거기에서 처음부터 Karaf를 재건하는 것? 어쨌든 felix 환경에서 실행중인 웹 컨테이너가 있어야 웹 콘솔을 실행할 수 있습니다. 따라서 Felix http-service가 실행 중이거나 Pax Web 번들 (Karaf와 같이)이 있어야합니다. 다음으로 우연히 발견하게 될 것은 만족스럽고 쉬운 로깅을 갖는 것입니다. 이렇게하면 자신을 만들거나 Pax 로깅 번들을 배포해야합니다 (다시 Karaf에서와 같이). 모든 인프라 번들을 사용할 수있는 Karaf를 계속 사용하지 않는 이유는 무엇입니까?