2012-04-20 14 views
7

Eclipse RCPアプリケーション用に開発されたコード(Eclipseプラグイン/ OSGiバンドルとしてパッケージ化されています)をサーブレットに再利用する必要があります。OSGiのサーブレットコンテナまたはサーブレットコンテナにOSGiを埋め込むには?

ブログの記事、記事、ウィキをたくさん読んで、私は私がいることを知っている時点で終わったの後:

  1. アンOSGiフレームワーク(私の場合は春分)は、サーブレットに埋め込むことができますコンテナ(私の場合はTomcat 7)
  2. またはTomcatをOSGiフレームワークに組み込むことができます。

Equinoxは、2番目のオプションをより簡単にすることをお勧めします。しかし、生産のために、彼らは1を推奨します。なぜ私はわかりません。どのような場合には本当に良いのですか?

私はかなりベテランTomcatのユーザー午前、重く、それを管理する春分の変更にTomcatを埋め込むのでしょうか?つまり、Equinoxに埋め込まれたTomcatでは何が違うのでしょうか?

答えて

5

まず、コードがマニフェスト以外の任意のOSGi /春分の依存関係を持っていますか?そうでなければ、普通のTomcatでうまく動作するはずです。

私の理解では、春分にTomcatを埋め込むことは重く、それを管理変わるということです。 server.xmlとcatalina.shを含むあなたのフォルダのレイアウトはなくなります。代わりに、あなたはおそらくconfig adminを通してEquinoxアプリケーションを管理しています。

第2に、OSGi用の2つのサーブレットプログラミングおよびデプロイメントモデルがあります。最初はHttpServiceで、サーブレットとリソースをプログラムで登録します(これは拡張ポイントを介して行うこともできます)。この場合、アプリケーションは単なるバンドルの集まりに過ぎません。ただし、フィルタは使用できません。 2番目はOSGified WARであるWebアプリケーションバンドル(WAB)です。

+2

Iあなたは春分でTomcatを実行しているに探しているなら、完全に忘れてしまった、あなたはおそらく代わりに、それを自分で構築する[Eclipseの乙女座](http://www.eclipse.org/virgo/)を見てしたいと思います。 –

4

Apache Slingのmaven-launchpad-pluginは、OSGiフレームワーク(Apache Felixが標準で、他のものがサポートされているかどうかわからない)と定義したバンドルのセットを組み込んだwarファイルを生成できます。 TomcatでOSGiアプリケーションを実行するために使用できます。

5

我々は春分に非のOSGiからのOSGiへの桟橋を使用してかなり複雑なWebアプリケーションの移行を行ってきました。私は間違いなくあなたの決定を何らかの形で動かす可能性のある事柄についていくつか学んだ。 - OSGiをあなたのアプリケーションを実行するためのフレームワークとして使用することを選択した場合。オプション#2、あなたのアプリケーションが消費するものはすべてOSGiバンドルでなければならない。商用ライブラリの外部または第三者。たくさんのオープンソースを使用している場合、バンドルを見つけるのはかなり簡単です。バンドルが見つからない場合は、BNDToolsを使用してバンドルをバンドルすることができます。このアプローチは、すべての適切な依存関係を把握するのに時間がかかる可能性があり、クラスローダの問題がOSGiのハックを必要とする可能性があります。 - OSGiをTomcatに埋め込む方法は、より安全で簡単なアプローチです。この場合、WABから利益を得るかどうかはわかりませんが。ところで

それらがバンドルとして展開されているので、WABSの興味深い利点の一つは、あなたが簡単にWebアプリケーション間でコードを共有することができるということです、あなたは可能性があり、単純にエクスポート/インポートパッケージそれら全体で。今日、OSGi以外のデプロイメントでは実際には不可能なことです。

関連する問題