在我的项目中打包我需要的库作为OSGi包时,我仍然在苦苦挣扎。 我已经问过它了here。答案肯定是足够好的,但同样,我还有另一个问题,我不明白,不能分解:(
我最终将这个库打包为OSGi包,我已经确定了所有需要的依赖项,现在所有这些都在一个完整的jar存档中。
现在,如果我尝试使用该库的某个函数,则会引发异常,因为:
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,我在编译范围内拥有所有pom。这个捆绑工作......
我会比较两种情况下的MANIFEST文件,可能还有一些遗漏的依赖项。
答案 0 :(得分:0)
好的,以某种方式解决了。在这里寻求帮助之前,我应该更深入地讨论这个问题:) 因此,在pom文件中,我已将依赖的范围更改为javaee-api为“provided”。 (hint)
然后有一些抱怨“未解决的依赖”,但那些标有“; resolution:=”可选“:P
到目前为止它的确有效。但我想这与“干净又漂亮”的解决方案相差甚远。