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 파일을 비교해 보겠습니다. 일부 누락 된 종속성이있을 수 있습니다.
나는 최후의 수단으로 uber jar 접근법을 고려할 것이다. 처음부터 실수라고 생각한다. – Robin
더 나은 접근법은 진정한 라이브러리에서 OSGi 패키지를 만드는 것이다. 또한 OSGi가 준비하지 않은 모든 의존성을 OSGify에 적용한다는 의미인가? – stibi