2017-09-27 10 views
0

EARアプリケーションは、EJBモジュール+ WARモジュールで構成されています。どちらもDeltaspike(1.8.0)ライブラリに依存しています。 のJBoss EAP 7.0の下でアプリケーションを展開する一方で、出力は次の例外を示していますJBoss EAP 7でDeltaspike initが失敗しました。

Caused by: java.util.ServiceConfigurationError: org.apache.deltaspike.core.spi.config.ConfigSourceProvider: Provider org.apache.deltaspike.core.impl.config.DefaultConfigSourceProvider not a subtype 
at java.util.ServiceLoader.fail(ServiceLoader.java:239) 
at java.util.ServiceLoader.access$300(ServiceLoader.java:185) 
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) 
at java.util.ServiceLoader$1.next(ServiceLoader.java:480) 
at org.apache.deltaspike.core.util.ServiceUtils.loadServiceImplementations(ServiceUtils.java:66) 

問題はWARモジュールからCDIビュー拡張ONYで起こります。初期化はEJBモジュールから正しいです。 WARと間違って何が起こっている

。設定上の問題ですか?

+1

Deltaspikeはどのようにインストールされていますか?それは、Deltaspikeの2つのバージョンがインストールされているように見えます。 –

+0

EARアプリケーションに埋め込まれたEJBモジュールとWARモジュールの両方がdeltaspikeモジュールを使用しています。彼らは同じバージョンを使用しています。 EJBコンテナとWebアプリケーションをロードするときに何か悪いことがあるようです。 EJBの読み込みはうまく動作しますが、Webアプリケーションの読み込みに失敗します。 – ruddy32

+1

申し訳ありませんが、私は "バージョン"を使用してはいけません。それは、Deltaspikeを2つの異なるクラスローダーにロードしているようです。 Deltaspikeは 'EAR/lib'ディレクトリにありますか? 'EAR/WAR/WEB-INF/lib'ディレクトリにDeltaspikeライブラリがないことを確認してください。 –

答えて

0

はい、それはジェームスR.パーキンスはコメントで示唆したような構成の問題があります。

あなたが(任意のZIPファイルビューアで)EARを開くと、Deltaspikeライブラリの2つのコピーがあることがわかります。

application.ear 
├── lib 
│ ├── deltaspike-core-api-1.x.y.jar 
│ └── deltaspike-core-impl-1.x.y.jar 
├── application.war 
| └── WEB-INF 
│  └── lib 
│   ├── deltaspike-core-api-1.w.z.jar 
│   └── deltaspike-core-impl-1.w.z.jar 

これは、クラスローダが混乱し、上記のエラーが発生します。この問題を解決するには

、WAR POMで<scope>provided</scope>として図書館Deltaspikeマーク彼らはWAR WEB-INF/libにバンドルされないように:

<dependency> 
     <groupId>org.apache.deltaspike.core</groupId> 
     <artifactId>deltaspike-core-api</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.deltaspike.core</groupId> 
     <artifactId>deltaspike-core-impl</artifactId> 
     <scope>provided</scope> 
    </dependency> 

私は同様の問題を持っていたし、それをこのように修正することができました。

関連する問題