2012-10-28 3 views
0

OSGi 번들과 같이 프로젝트에 필요한 라이브러리를 패키징하는 데 많은 어려움을 겪고 있습니다. 나는 이미 그것에 대해 물었습니다 here. 거기에 대한 답변은 충분하지만, 또 다시, 나는 이해가 안되며 그것을 분해 할 수없는 또 다른 문제가있다. (라이브러리가 OSGi 번들로 패키징 된 java.lang.ClassFormatError 예외

나는 결국 OSGi 번들로 패키지화되어있다. 그리고 모두가 하나의 완전한 항아리 아카이브에 함께 지금

지금이 있기 때문에 예외가 발생, 라이브러리를 사용하여 일부 기능을 시도하는 경우 :. 내가 좋아하는 것

Caused by: java.lang.ClassFormatError: javax/ws/rs/core/UriBuilder 
    at com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClient.<init>(JerseyJiraRestClient.java:61) 
    at com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactory.create(JerseyJiraRestClientFactory.java:34) 
    at com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactory.createWithBasicHttpAuthentication(JerseyJiraRestClientFactory.java:39) 
    at com.tieto.etb.esb.libs.jiraclient.JiraClient.getClient(JiraClient.java:28)[145:jiraclient.bundle:0.1.0.SNAPSHOT] 
    at com.tieto.etb.esb.jira.JiraBean.projectInfo(JiraBean.java:38)[142:jira.bundle:0.1.0.SNAPSHOT] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_35] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_35] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_35] 
    at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_35] 
    at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:341)[70:org.apache.camel.camel-core:2.10.1] 
    at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:238)[70:org.apache.camel.camel-core:2.10.1] 
    at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)[70:org.apache.camel.camel-core:2.10.1] 
    ... 52 more 

이를 요청하기를 힌트, 거기에 문제가 될 수 있습니다. 번들을 구축하는 동안 문제가있는 것 같군요

예를 들어,이 번들에는 다른 pom이 있는데, 거기에는 컴파일 범위가 있습니다. 이 번들은 작동 중입니다 ...

두 경우 모두 MANIFEST 파일을 비교해 보겠습니다. 일부 누락 된 종속성이있을 수 있습니다.

+0

나는 최후의 수단으로 uber jar 접근법을 고려할 것이다. 처음부터 실수라고 생각한다. – Robin

+0

더 나은 접근법은 진정한 라이브러리에서 OSGi 패키지를 만드는 것이다. 또한 OSGi가 준비하지 않은 모든 의존성을 OSGify에 적용한다는 의미인가? – stibi

답변

0

좋아, 어떻게 든 해결되었습니다. 나는 여기에 도움이되기 전에 문제를 좀더 깊게 다뤄야 만한다. :) 그래서 pom 파일에서 javaee-api에 대한 의존성의 범위를 "제공된"것으로 변경했다. (hint)

그런 다음 몇 가지가 "해결되지 않은 의존성"에 대한 불평이 있었다, 그러나 그는 표시가있어 "; 해상도 : =". "옵션 : P

을 지금까지 작동하지만이 꽤 먼 것 같다

관련 문제