1

別のサーバーで実行されているアプリの.warファイルを使用してデプロイする前に、JBossAS7をテストしています。

アプリを介してデータベースにログオンしようとすると、次のエラーが発生します。

SEVERE [] (http--0.0.0.0-8080-4) java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException from [Module "deployment.app.war:main" from Service Module Loader]
      at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
      at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
      at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
      at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
      at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
      at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220)

一部のフォーラムでは、commons-codec jarを追加することを提案していますが、JBossにはすでにありますよね?(ここでjboss-as-7.1.1.Final/modules/org/apache/commons/codec/main/commons-codec-1.4.jar:)

OSGiはアクティブ化されていません。率直に言って、OSGiがどのような目的に役立つのかわかりませんが、アクティブ化しようとすると、展開に失敗するため、戦争が混乱します...

私はJDKを持っていますが、それが助けになるならJREはありません。

4

2 に答える 2

0

JBoss AS 7 は、モジュラー クラスのロードにデフォルトで OSGi を使用しません。JBoss モジュールを使用するため、OSGi とは関係ありません。

JBoss AS 7 で提供される commons-codec を使用する場合に必要なことは、デプロイメントに依存関係を追加することです。

于 2013-03-22T18:57:29.087 に答える
0

モジュールは、アーティファクト クラスによって自動的に表示されません。次の 3 つの可能性があります。

  1. standalone.xml でグローバル モジュールを定義します http://javahowto.blogspot.de/2012/09/how-to-create-global-modules-in-jboss.html このモジュールは、デプロイするすべてのアーティファクトで使用されますボス。
  2. それを戦争アーティファクトのlibフォルダーに入れます。Mavenでそれを行うことができます。
  3. マニフェスト内で明示的な依存関係を定義します。https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 セクションの依存関係: マニフェスト エントリ
于 2013-04-30T21:11:36.773 に答える