0

war ファイルを Jboss 5.1 にデプロイすると、次のようになります。

 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.appender.FileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
 ERROR [STDERR] log4j:ERROR [BaseClassLoader@18c1f7d{vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/OnlineUsage.war/}] whereas object of type
 ERROR [STDERR] log4j:ERROR "org.jboss.logging.appender.FileAppender" was loaded by [org.jboss.bootstrap.NoAnnotationURLClassLoader@291aff].
 ERROR [STDERR] log4j:ERROR Could not instantiate appender named "FILE".

上記のエラーでも、?wsdl URL を正しくヒットできます。

次に、単純に log4j jar ファイルを war から削除してみましたが、エラーなしで正常にデプロイされました。?wsdl も正しく取得しました。

私の質問は、これが本番またはリアルタイムで問題を引き起こすかどうかです(リアルタイムエラーまたはバインディングエラー)。

過去にエラーが発生しましFailed to create SAX Parserた。jar を戦争から削除することが問題ではない場合、XercesImpl jar も削除できますか? Jboss には独自の jar ファイルがあるため、クラスのキャスト例外を回避できます。

4

1 に答える 1

1

クラス キャストの例外を回避するために、JBoss または JDK が提供する jar を WEB-INF/lib フォルダーにパッケージ化しないことを強くお勧めします。何らかの理由で必要な場合は、ファイルを使用してクラス ローディング分離を利用しjboss-classloading.xmlます。

この原則は、他の Java EE コンテナー (Websphere、Weblogic、GlassFish など) にも当てはまります。独自のアーティファクトに JDK およびコンテナー提供のライブラリーをパッケージ化することは決してありません。

優れたオープン ソース ツールであるJBoss Tattletaleを使用して、WAR/EAR にパッケージ化しない依存関係を見つけることができます。

于 2013-03-14T18:28:39.663 に答える