4

複数の OSGi バンドル (一部は私のもの、一部はサードパーティ) で構成されるサーバー アプリケーションがあります。バンドルの 1 つは、Struts を使用した Web フロントエンドを提供します。必要な Struts ライブラリは、Web フロントエンド バンドル内にあります。

ここで、別の Web フロントエンドを提供する 2 つ目のバンドルを追加したいと考えています。これは、異なる依存関係と非常に異なるユース ケースを備えています。そのバンドルにも Struts を使用したいのですが、同じライブラリを 2 つのバンドルに入れたくありません。

OSGi では、Struts ライブラリを独自のバンドルに分離し、両方のバンドルからそれを使用することは問題ありません。しかし、そのようにパッケージ化された Struts は見つかりませんでした。

ちょっとググって、Struts のホームページを見ても、何も得られませんでした。Struts 内で OSGi コンテナーを実行するための Struts 用のプラグインを見つけることができましたが、それは私が望んでいるものではありません。

4

1 に答える 1

5

http://repo2.maven.org/maven2/org/apache/struts/struts2-core/2.1.6/で現在の struts バンドルを見てください。

たとえば、struts2-core-2.1.6.jar をダウンロードして展開し、META-INF/MANIFEST.MF を見ると、OSGI ヘッダー (Import-Package、Export-Package、Bundle- *):

C:\TMP\META-INF>more MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: 1.5.0_10 (Sun Microsystems Inc.)
Built-By: musachyb
Build-Jdk: 1.5.0_10
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Import-Package: com.opensymphony.xwork2;version="2.1",com.opensymphon
 <SNIP>
Bnd-LastModified: 1231185746365
Export-Package: org.apache.struts2.views.xslt;uses:="javax.servlet.ht
Bundle-Version: 2.1.6
 <SNIP>
Bundle-Description: Apache Struts 2
Bundle-Name: Struts 2 Core
Bundle-DocURL: http://www.apache.org
Bundle-ManifestVersion: 2
Bundle-Vendor: Apache Software Foundation
Bundle-SymbolicName: org.apache.struts.struts2-core
Tool: Bnd-0.0.255

OSGi アプリ内でそれらをどのように使用するかはわかりませんが、理論的には、少なくともそれらを参照して「何か」を行うことができます!! :)

于 2009-05-25T03:53:08.597 に答える