ClassNotFoundExceptionとGuice2.0
-
13-09-2019 - |
質問
以下のコード生成エラーを使用Guice2.0にアクセスしてください。とGuice1.0会員の方はログインしてくださいのJDKがJava6update15.
public class App {
public static void main(String[] args) {
Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
// just testing
}
});
}
}
のエラー:
Exception in thread "main" java.lang.NoClassDefFoundError: [Lorg/aopalliance/intercept/MethodInterceptor;
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:78)
at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:70)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:232)
at com.google.inject.spi.Elements.getElements(Elements.java:101)
at com.google.inject.InjectorShell$Builder.build(InjectorShell.java:135)
at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:102)
at com.google.inject.Guice.createInjector(Guice.java:92)
at com.google.inject.Guice.createInjector(Guice.java:69)
at com.google.inject.Guice.createInjector(Guice.java:59)
at App.main(App.java:6)
Caused by: java.lang.ClassNotFoundException: org.aopalliance.intercept.MethodInterceptor
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 14 more
何ができる問題なのでしょうか。
解決
あなたはクラスパス内のクラスorg.aopalliance.intercept.MethodInterceptor
と依存ジャーを含めるように逃しました。
他のヒント
として Boris Pavlović つ彼の答えが欠落しているjar.具体的には、aopalliance.jar ファイルにつけるguice zipファイル
また、お客様が使ってみ guice-2.0-no_aop.jar, がいします。
このファイルをクラスパスに依存するツールを使用するお客様のjavaコードです。
- の場合javaコマンドラインから:
windows: java -cp aopalliance.jar;guice-2.0.jar;other_jars.jar YourMainClass *nix: java -cp aopalliance.jar:guice-2.0.jar:other_jars.jar YourMainClass
- る場合にはjavaからEclipse 一般的にいいタイプの lib/ディレクトリにあります。おjarがあり そして右クリックすると、jar->の構築 Path->Build Pathに追加
aopalliance.jarは疑いをクラスパスにあるように、
私は昨日、この問題が発生し、依存性は、Mavenのによって管理されている。
バージョン6.1.10から6.1.26に桟橋を更新して問題を修正します。
ここでの本当の問題は、コンテナがaopalliance.jarをサポートしていないです。私はそれが解決策を探して必死にそこに誰かを助けることを願っています。
私は今日、この問題に遭遇します。実はTomcatはそのlibにクラスを見つけることができません。だからTomcatのlibフォルダ内にaopalliance.jarをコピーし、それは十分です。
追加の下にjarファイ動作します。
javax.inject.jar
guice-3.0-no_aop.jar
所属していません StackOverflow