これは、Google Guiceの呼び出しコードです:GuiceがNoSuchMethodErrorを投げているのはなぜですか?
public static ContainerRunner forInjector(Injector injector) {
return (ContainerRunner)injector.getInstancefaultContainerRunner.class);
}
public static ContainerRunner forModules(Iterable<? extends Module> modules) {
return forInjector(Guice.createInjector(modules));
}
そして、この例外:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.inject.internal.Initializer.requestInjection(Lcom/google/inject/internal/InjectorImpl;Ljava/lang/Object;Lcom/google/inject/Binding;Ljava/lang/Object;Ljava/util/Set;)Lcom/google/inject/internal/Initializable;
at com.google.inject.internal.BindingProcessor$1.visit(BindingProcessor.java:108)
at com.google.inject.internal.BindingProcessor$1.visit(BindingProcessor.java:70)
at com.google.inject.internal.ProviderInstanceBindingImpl.acceptTargetVisitor(ProviderInstanceBindingImpl.java:62)
at com.google.inject.internal.BindingProcessor.visit(BindingProcessor.java:70)
at com.google.inject.internal.BindingProcessor.visit(BindingProcessor.java:43)
at com.google.inject.internal.BindingImpl.acceptVisitor(BindingImpl.java:93)
at com.google.inject.internal.AbstractProcessor.process(AbstractProcessor.java:56)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:186)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:73)
at com.baml.gmt.xasf.container.ContainerRunners.forModules(ContainerRunners.java:39)
私の問題は、メッセージが欠落している特定のどの方法を教えていないということです。これをデバッグする良い方法はありますか?これはMavenの過渡的な依存関係の問題ですか?
ありがとう、@ durron597、メッセージが一貫していません。推移的な依存関係によって引き出された複数のGuiceバージョンによって引き起こされる可能性があると言われました。私を殺しているのは、このエラーメッセージがどこから始まるのか分からないということです。あるいは、複数のバージョンのJARファイルが存在する可能性があります。 – joehuangathome
私はちょうど2つの場所で同じメインメソッドを実行しました:IntelliJとUnix、libディレクトリでmvn依存関係によって生成されたすべての依存ファイルをダンプします:copy-dependenciesとpub libをjava classpathとしてダンプします。 IntelliJでは、うまく動作します。 Unixでは、このエラースタックトレースをスローしました。 – joehuangathome