私はプロジェクトに取り組んでいます。それは統合プロジェクトです。ApacheCamelとApacheKarafを使用しています。プロジェクトでは、JiraRESTJavaクライアントライブラリを使用する必要があります。
そのため、非OSGIライブラリをOSGIバンドルにラップする方法について、さまざまな記事やスレッドをたくさん読んだことがありますが、それが正しいかどうかはよくわかりません。
そこで、必要なライブラリに依存するPOMファイルを作成しました。パッケージを作成してKarafにデプロイしようとしましたが、もちろん、Karafはパッケージが不足していると不満を漏らしました。
だから、私は対応するMavenの依存関係を見つけ、それを追加し、パッケージはに<Import-Package>
、依存関係はにになり<Embed-Dependency>
ます。
別のラウンド、デプロイ、依存関係の検索、追加、...そして何度も何度も、Karafがバンドルで問題がなくなるまで繰り返します。
それは本当に正しいですか?私にはかなり狂ったように見えるので、私はいつものようにそれを持っていないと思います:)
最後に、パッケージは仕事用のコンピューターにあった安定した状態になり、すぐにチェックして家に帰りました。そこで続けましたが、奇妙なことに、パーソナルコンピューターでコンパイルされた同じ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