war ホスティング OSGi バンドルを作成しようとしています。完全な構成で WAB バンドルをホストできるはずなのでpax-web-extender-war
、そのために統合を試みます。slf4j-api
andのようないくつかの依存関係が必要slf4j-log4j12
です。ここに問題があります:私は常にこの例外を受け取ります:
org.osgi.framework.BundleException: Fragment bundles can not be started.
at org.apache.felix.framework.Felix.startBundle(Felix.java:1782)
slf4j-log4j12
は実際にはフラグメント バンドルであるためです。私はフェリックスがこれに対処するべきだと思っていましたが、そうではありません。そのため、このjarをに移動しようとしましWEB-INF/lib
たが、osgiがバンドルとして解決できないため、配線が失敗します。
そう、
- フラグメントバンドルはどこに置くべきですか?
- 何らかの形で設定する必要があります
framework.properties
か? - Apache Felix はフラグメント バンドルを扱うことさえできますか?
以下は、戦争の現在のレイアウトです(これは、felix http bridge サンプルに基づいていることに注意してください)。
.
└── WEB-INF
├── bundles
│ ├── commons-fileupload-1.2.2.jar
│ ├── commons-io-2.4.jar
│ ├── hello-wab-1-SNAPSHOT.war
│ ├── org.apache.felix.http.bridge-2.2.0.jar
│ ├── org.apache.felix.http.samples.filter-2.2.0.jar
│ ├── org.apache.felix.webconsole-4.0.0.jar
│ ├── pax-web-api-2.1.0.jar
│ ├── pax-web-extender-war-2.1.0.jar
│ ├── pax-web-spi-2.1.0.jar
│ ├── slf4j-api-1.6.6.jar
│ ├── slf4j-log4j12-1.6.6.jar
│ └── wrapper-json-1-SNAPSHOT.jar
├── classes
│ └── org
│ └── apache
│ └── felix
│ └── http
│ └── samples
│ └── bridge
│ ├── FrameworkService.class
│ ├── ProvisionActivator.class
│ └── StartupListener.class
├── framework.properties
├── lib
│ ├── org.apache.felix.framework-4.0.3.jar
│ ├── org.apache.felix.http.proxy-2.2.0.jar
│ ├── org.apache.felix.webconsole-4.0.0.jar
│ ├── org.osgi.compendium-4.3.0.jar
│ └── wrapper-json-1-SNAPSHOT.jar
└── web.xml