私は実際に多くのOSGiコンテナで動作し、Karaf/JBoss Fuseは配備の問題を一度も教えてくれませんでした。
ただし、このようなコンテナにデプロイする場合、バンドルはパッケージのインポートとエクスポートに関してOSGI仕様に準拠している必要があります。 .war
にはチューニングが必要な場合があります。
いくつかのヒント:
- 利用のmaven-バンドル・プラグインの最新バージョン(3.xの)
- 使用あなたのバンドルをコンパイル
- ドン公式JBossのヒューズBOM」あなたのバンドル内部トン埋め込み瓶あなたは、互換性のOSGiに非OSGiのjarをオンにする他のオプション
- 使用
wrap
コマンドを持っていない場合を除き、ほとんどの時間の
- あなたは、データベースとのORMを使用する場合、を使用して動作しますとJPA、あなたのクラスローディングの問題の多くを保存します
jdbc
とjndi
は、コンポーネントモデルとして
- 使用青写真OSGiサービスとしてあなたのインターフェイスを公開
- 友達は
- サービスを注入(春のような基本的に動作します)ですOSGiサービスとして他のバンドルから/豆
- 読む「OSGiのアクションで」ブックの代わりにfuse.logの自分のファイルへ
- ログ
(
etc/org.ops4j.pax.logging.cfg
ファイル内でこれを行うにはLog4jの設定)
0.0.0-SNAPSHOT
を開発するとき。それは基本的なものです。 同じバージョンのバンドルを再デプロイすると、OSGiランタイムはおそらく以前にロードされたクラス/リソースを再利用し、期待どおりに動作しません。新しいメソッドや更新されたコードなどは表示されません。-SNAPSHOT
バージョンでは、OSGiランタイムは実際にコードをリロードします。
./fuse debug
で起動すると、IDEに接続してコードをライブでデバッグできるようになります。 Camel/Blueprint/CXF/Felix /任意のライブラリにデバッグすることもできます。
困難
学習曲線が関係するフレームワークや技術がたくさんあるとして、非常に急峻です。あなたがオンラインで見つけた多くの例と文書は(ここではSOであっても)古くなっています。
JBoss FuseもEAPとTomcatで動作します。 Red Hatと連絡を取ると、Karaf/OSGiの代わりにそのように使うことができます。 –
私は非常に意見に基づいているので、この質問を閉じるために投票しています。 –