2016-04-29 19 views
0

JBoss 7 1.1.0.FinalにHibernateベースのWebアプリケーションをデプロイしようとしています。使用されるHibernateのリリースは4.2.21.Finalです。私は、クラスパスの衝突としか想定できない、あらゆる種類の問題を抱えています。 Hibernate、dom4j、...などです。JBoss AS 7:除外するモジュールを見つける方法は?

私が誤解していない限り、JBossの設定を変更する自由を持っていない場合は、除外するモジュールのリストをWEB-INF/jboss-deployment-structure.xmlに提供して解決してください。

これは正しい仮定ですか?

まず、悪名高いdom4jクラスキャスト例外を解決しようとしています。モジュール 'org.dom4j'を除外しても役立たない。私はまた、それに応じてすべてのモジュールを除外しようとしました。そしてそれらに依存するそれら。 Etc ...最後に、war4jのjarファイルをwarファイルから削除すると動作しました。

私たちは、Dom4jの異なるリリース、Hibernate & allを含むWebアプリケーションを開発しています。 JBossインスタンス上でHibernateをアップグレードすることはできず、同じアプリケーションも別のアプリケーションサーバー上で実行する必要があります。だから私たちは戦争ファイルから瓶を取り除くこともできません。

私の質問はどのように除外するモジュールを見つけるのですか?クラスパスの衝突を解決する。

+0

これを解決できましたか? – Sampada

+0

まだありません。これは、あらゆる種類のJEE 6アプリケーションサーバーとのアプリケーションの互換性テストの一部です。私たちは今Glassfishと戦っています。 :-) –

+0

クール。すべて最高! – Sampada

答えて

0

私はJBossでこのような問題を扱う非常に原始的な方法を使っています。 JBOSS_HOMEのmodules/system/layers/baseディレクトリを検索して問題のjarファイルを参照します。それはあなたに除外リストを与えます。

しかし、このリストはかなり長いと判明することがあり、実際にはその中のすべてを除外することはできません。その場合、JBossに(そしてあなたの場合はDOM、Hibernateなどにバンドルされているものではなく)JBOSSを使用したいと思うジャーをカスタムモジュールとして追加することができます。このモジュールは、その後standalone.xmlにグローバルモジュールとして追加することができます。

<subsystem xmlns="urn:jboss:domain:ee:1.1"> 
      <global-modules>     
       <module name="my.custom.module"/> 
      </global-modules> 
      <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> 
      <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> 
    </subsystem> 

また、あなたは定義されている可能性のある他のカスタムモジュールの依存関係としてこの<my.custom.module>を追加する必要があります。

これは2回以上働いています。それがあなたにも役立つことを願っています。

+0

ありがとう!私がJBossに戻ったらすぐに試してみます。 :-) –

関連する問題