2017-02-08 41 views
0
02:35:43,076 WARN [org.jboss.modules] (default task-8) Failed to define class com.karthik.db.jpub.mapping.ObjUser in Module "deployment.CVRepo.war:main" from Service M 
odule Loader: java.lang.NoClassDefFoundError: Failed to link com/karthik/db/jpub/mapping/ObjUser (Module "deployment.CVRepo.war:main" from Service Module Loader): oracle/sql/ORAData 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
     at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446) 
     at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274) 
     at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:78) 
     at org.jboss.modules.Module.loadModuleClass(Module.java:605) 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351) 

ここで、ObjUserクラスはData.jarに属します。 CVRepo.warのWEB-INF/libフォルダにData.jarが存在する
1)クラスObjUser.classを含むjar-data.jarがCVRepo.warにパッケージ化されていても、このエラーの原因は何ですか。
2)外部ジャー(data.jar)をWARのWEB-INF/libフォルダから削除し、モジュールとして追加し、JBOSS 7のWARのjboss-deployment.xmlで参照する必要がありますか?JBOSS 7のユーザー定義のjarに属するクラスのjava.lang.NoClassDefFoundError EAP

答えて

0

NoClassDefFoundErrorは、クラスがクラスパスにないためにスローされます。これは、アプリケーションのパッケージ化または指定されたクラスローダー分離設定が原因である可能性があります。 Tattletale Report:Class Locationを参照して、パッケージ化された場所を特定し、分離設定と比較してください。&特定の展開タイプに対してJava EEクラスパスが定義されています。

注:クラスがアプリケーションに存在せず、javaソースファイルにクラスがリストされていない場合は、javapまたは他の逆コンパイラを使用してクラスを逆コンパイルし、クラス定義がソースと一致するかどうかを確認してください。いくつかのIDEは、クラスパスにクラスがない場合に無効なクラスを生成し、無効なクラス参照を含むクラスを生成し、それらがデプロイされると、パッケージのないクラス名などの異常なClassNotFoundExceptionが発生します。

NoClassDefFoundErrorは、JVMがクラスの定義をロードしようとしたときにスローされ、定義が見つからない場合にスローされます。 NoClassDefFoundErrorは、通常ClassNotFoundExceptionまたはExceptionInInitializerErrorによって発生します。最初のClassNotFoundException/ExceptionInInitializerErrorの後、JVMはNoClassDefFoundErrorをスローし、元の原因を表示しません。私を助けるため https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7

+0

ありがとう:

レビューフルのserver.logと最初のクラスローディング例外

を見つけるには、リンクの基本的なクラスローディング詰め込むを参照してください。私はクラスがクラスパスにないが、クラス-ObjUserがCVRepo.warの中にバンドルされているので、NoClassDefFoundErrorが通常スローされることを理解しています。 WEB-INF/libフォルダのdata.jarに存在します。理想的にはクラスパスで利用できるはずです – Karthik

関連する問題