1

org.objectweb.asmオプションの解像度でバージョンが指定されていないパッケージ()をインポートするバンドル(jersey-server)があります。

org.objectweb.asm;resolution:=optional

現在、アプリケーションは(Equinoxフレームワークを使用して)Apache Karafにデプロイされており、このパッケージの新しいバージョン(org.objectweb.asm)、つまりバージョン4.0がエクスポートされます。私が解決しようとしている問題は、jersey-serverバンドルがパッケージのバージョンを指定していないため、4.0に接続していることです。ただし、使用しているjersey-serverのバージョン(1.12)は、このバージョンと互換性がありません。コンテナに3.1バージョンのパッケージがあり、接続するためにjersey-serverバンドルが必要です。

ニーズに合わせてフラグメントを使用しようとしましたが、機能していないようです。私がやろうとしていることが可能かどうかを知るために、Equinox(またはFelix)でフラグメントのインポートパッケージの競合解決がどのように機能するかを完全には理解していません。おそらく別の方法がありますか?

4

2 に答える 2

1

いいえ、フラグメントは付加的なものです。つまり、ホストバンドルにインポートを追加することはできますが、ホストのインポートを置き換えたり削除したりすることはできません。

バンドルは単に壊れているため、jersey-server修正する必要があります。

于 2013-02-19T11:34:24.747 に答える
1

pax-webでも同様の問題が発生し、「回避策」を作成しました。

https://github.com/ops4j/org.ops4j.pax.web/tree/master/pax-web-features/xbean-fragment

Mavenからも利用できます: http ://search.maven.org/#artifactdetails%7Corg.ops4j.pax.web%7Cxbean-fragment%7C3.0.0.M2%7Cbundle

于 2013-02-19T12:27:53.533 に答える