私はここで終わるとは思っていませんでしたが、GoogleとStackOverflowを検索した後、私はここにいます。Jboss EAP 7 - 暗黙的なモジュールをデプロイメントから除外する方法(javax.jms)?
This is my exact problem私はコードを変更する余裕がないことを除いて。
デプロイしようとしているWARには、既定でJboss EAP 7によって既にロードされているJMSライブラリ(javax.jms、これはWARから除外できません)が含まれています。 jar
のパスはjboss/modules/system/layers/base/javax/jms/api/ain/jboss-jms-api_2.0_spec-1.0.0.Final-redhat-1.jar
のようなものです。同じクラスロードのこの2つの異なるバージョンのため、私はClassCastExceptionを取得しています。だから、
org.apache.activemq-ra.ActiveMQConnectionFactory cannot to be cast to javax.jms.ConnectionFactory
私のアプリケーションは、JARがWARに含まれて使用できるように、私はませ負荷するjavax.jmsにJBossのたい。
このように、モジュールをグローバルに(すべてのWARデプロイメント用に)除外する方法があるかどうかは疑問でした。
デプロイメントごとにそれを除外することもできます。そして、私はそれがjboss-deployment-structure.xmlを使用してacheivdできることを認識しますが、それを動作させることはできません。ここで
は、私が試したものです:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure
xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclude-subsystems>
<subsystem name="javax" />
<subsystem name="javax.jms" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
と
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure
xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclusions>
<module name="javax" />
<module name="javax.jms" />
<module name="javax.jms.api" />
</exclusions>
</deployment>
</jboss-deployment-structure>
私はWEB-INFディレクトリにファイルを置きました。それはうまくいかなかった。それでも、J38oss EAPのモジュールフォルダからJMSクラスが読み込まれました。だから、私はこれをどうやって正しく行うのですか?
これはうまくいかないのですが、サブシステム名は 'messaging-activemq'でなければなりません。 ' 'を除きます。しかし、実装を含めない限り、JMSがデプロイメントで正しく動作するかどうかはわかりません。 –