0

いくつかのアプリケーションをデプロイする Jboss 5.1 を使用しています。現在、Jboss の common/libs には休止状態の jar のバージョンがあります。アプリケーションの 1 つは、新しいバージョンの hibernate jar を使用しています。そのため、Jboss にデプロイされる war にパッケージ化された依存関係の jar がありました。アプリケーションは正常にデプロイされますが、ヒットしようとすると、以下の例外がスローされます。

私の疑いは、Jboss が独自のバージョンの休止状態の jar を使用しているが、戦争でパッケージ化されたものではないということです....どうすれば Jboss は、その共通/ライブラリからではなく、戦争に由来する休止状態の jar を使用できますか?

関連するアプリケーションを変更することを好みますが、同じ Jboss インスタンスに存在する他のいくつかのアプリケーションがあり、jboss/common/lib の jar を変更してそれらを台無しにしたくないため、Jboss では変更しません。

SEVERE [ContainerResponse] The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoSuchFieldError: INSTANCE
    at org.hibernate.type.StandardBasicTypes.<clinit>(StandardBasicTypes.java:45)
4

2 に答える 2

0

Java EE クラス・ローダーは階層になっています。

  1. ブートストラップ
  2. アプリサーバー
  3. 応用

アプリ サーバーのクラス ローダーは最初に Hibernate JAR のバージョンを見つけるため、アプリはうまくいきません。

アプリケーション クラス ローダー JAR を優先するように JBOSS に指示する必要があります。そうするための設定のためのGoogle。覚えていません。

于 2013-05-28T18:44:16.327 に答える
0

このリンクをチェックしてください.. http://huima.wordpress.com/2011/09/16/having-fun-with-jboss-classloader-or-how-i-figured-out-how-to-get-my- jboss-5/ で作業するアプリケーション

この記事には、JBoss クラスのロードについて詳しく説明している他のリンクもありますので、そちらも参照してください。私が以前に行った方法は、戦争のWEB-INF内にjboss-classloading.xmlを以下の内容で追加することです

<classloading xmlns="urn:jboss:classloading:1.0"
name="yourapp.war"
domain="IsolatedDomain"
import-all="false"
parent-first="false" >
</classloading>
于 2013-05-29T06:34:45.310 に答える