我工作的一个项目,它的集成项目中,我们使用Apache的骆驼和Apache Karaf。 在项目中,我需要使用吉拉REST Java客户端库。
所以,我读过不少各种文章和关于如何包装非OSGI库OSGi包线程,但我真的不知道,如果我是正确的。
所以,我创建了一个依赖于所需要的库中的POM文件。 制成的包装,并试图将其部署到Karaf,当然,Karaf抱怨缺少的软件包。
于是,我找到相应的Maven的依赖,增加它,包进入<Import-Package>
和依赖成<Embed-Dependency>
。
又一轮,部署,找到相关性,加...又一次,又一次,直到Karaf是好的同捆。
那真的是正确的吗? 在我看来,像相当疯狂,所以我想我没有得到它作为usualy :)
最后,包到达,这是我的工作电脑上的稳定,我赶紧检查了,回家去了,还有我继续,但是,奇怪,同样的POM /包,我的个人电脑上编不工作,再抱怨缺少包,但是这一次,这个包是肯定的POM文件,并为确保它在包包埋,我可以在那里看到它。
这缺少的包是这个时候org.apache.commons.codec。
org.osgi.framework.BundleException: Unresolved constraint in bundle jiraclient.bundle [134]: Unable to resolve 134.0: missing requirement [134.0] osgi.wiring.package; (osgi.wiring.package=org.apache.commons.codec)
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3826)[org.apache.felix.framework-4.0.3.jar:]
at org.apache.felix.framework.Felix.startBundle(Felix.java:1868)[org.apache.felix.framework-4.0.3.jar:]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:944)[org.apache.felix.framework-4.0.3.jar:]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1247)[6:org.apache.felix.fileinstall:3.2.6]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1219)[6:org.apache.felix.fileinstall:3.2.6]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1208)[6:org.apache.felix.fileinstall:3.2.6]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:503)[6:org.apache.felix.fileinstall:3.2.6]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:291)[6:org.apache.felix.fileinstall:3.2.6]
所以,现在我完全糊涂了,什么是错的:(
拜托,伙计们,帮帮我。 谢谢!
该POM文件是漫长的,所以我想链路更好: http://pastebin.com/j5cmWveG