2017-04-08 5 views
0

現在、私は耳の中に複数の戦闘モジュールをテストしています。複数戦耳の配置で1つのサブシステム、jarを分離/除去する方法

基本的に私は以下に依存する2つの戦争を持っています:hibernate-validatorは、さらにjavax.validation.apiに依存し、ValidatorFactoryを含んでいます。私はこれもjcaサブシステムの活性化を引き起こすと思います。

なぜ私は私が理解していないを取得していますされています

Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.naming.context.java.module.xxx-ear.cmp.ValidatorFactory is already registered"}, 

私は2つの独立戦争でそれらを定義しているが、彼らは孤立することになっていないことを理解できますか?

私も含まれている耳のMETA-INFフォルダにあるjboss-展開するstructure.xmlを追加してみました:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <!-- Make sub deployments isolated by default, so they cannot see each others 
     classes without a Class-Path entry --> 
    <ear-subdeployments-isolated>true</ear-subdeployments-isolated> 

    <deployment> 
     <exclusions> 
      <module name="javax.validation.api" /> 
     </exclusions> 
    </deployment> 

    <sub-deployment name="xxx-api.war"> 
     <exclusions> 
      <module name="javax.validation.api" /> 
     </exclusions> 
     <exclude-subsystems> 
      <subsystem name="jca" /> 
     </exclude-subsystems> 
    </sub-deployment> 

    <sub-deployment name="xxx-web.war"> 
     <exclusions> 
      <module name="javax.validation.api" /> 
     </exclusions> 
    </sub-deployment> 

</jboss-deployment-structure> 

私は展開とサブ展開でjarファイルを除外しようとした - 失敗しました。私もメインの配備またはサブ配備のサブシステム全体を除外してみましたが失敗しました。

このような問題を解決するにはどうすればよいですか? 2戦争が頼りになる別の瓶があれば、このケースから私も同様の問題があると思います。

+2

'jboss-deployment-structure.xml'ファイルを使用しないとどうなりますか?アプリケーションには、それ自身のJava EE API jarを含めないでください。 –

+0

POMファイルを共有できますか? – D00de

答えて

0

この問題は、pomやjboss-deployment-structureではなくweb.xmlに関連しています。私は誤って名前の衝突を引き起こす両方の戦争で同じモジュール名を設定しました。名前はパッケージ名と同じですので、エラーが私を混乱させました。誰かが同じ問題に遭遇した場合は、最初にweb.xmlをチェックしてください。

関連する問題