2

私はOSGiでよくある「使用の競合」の問題を抱えています。私は、OSGiを初めて使用するので、これが非常に単純な場合は申し訳ありません。私はこれこの他の質問を読みました。これらの問題をデバッグする方法をより詳細に説明しているこれも読みました。まだ、私はそれを理解することはできません。重複したエクスポートが見つかりません(前回の記事「uses制約違反を確認するには、常に複数のサプライヤーが存在する必要があります」を引用しています)。

これは完全なエラーです

initial@reference:file:../../Dev/mine/target/dependency/jasperreports-3.7.1-osgi.jar [151]
  Package uses conflict: Import-Package: org.apache.commons.collections.comparators; version="0.0.0"

これは、ジャスパーマニフェストの関連するスニペットです。完全に貼り付けるには長すぎます

Export-Package: ...,net.sf.jasperreports.crosstabs.fill.calculation;uses:="org.apache.commons.collections,net.sf.jasperreports.engine,org.apache.commons.collections.comparators,org.apache.commons.logging,..."

そして、packages org.apache.commons.collections.comparatorsこれは、パッケージが正しく一度だけエクスポートされることを示すための出力です。

osgi> packages org.apache.commons.collections.comparators
org.apache.commons.collections.comparators; version="3.2.0"<org.apache.commons.collections_3.2.0 [869]>

何か案は?私が試すことができる他の何か?私は本当にこれを疑っていますが、equinoxはエクスポートされたバージョンが3.2.0であるがusesバージョンが0.0.0であると不平を言っていますか?

4

3 に答える 3

2

ApacheFelixでこれを実行してみてください。使用の競合を検出すると、広範なトレースが提供されます。

于 2012-11-02T08:37:40.213 に答える
0

パッケージは競合を使用しています:インポート-バンドルの起動時にパッケージを使用して、他の(長い)回答を読んでみてください 。競合を見つけるためのかなり詳細な方法を紹介しました。

于 2012-11-09T03:26:52.743 に答える
0

私は3番目のオプションで行くことになりました。これは@PeterKriensの提案に関連しており、他の人がこれらの問題に取り組むための別のアプローチになることを願っています。Felix上で実行されるKarafをインストールし、hot-deployフォルダーを使用して一度に1つのjarをデプロイしました。このようにして、問題が発生したときに問題を確認できました。非常に遅いですが、冗長です。Felixだけを使用して、このように展開する方法が見つかりませんでした

于 2012-12-14T15:20:14.227 に答える