2

GWT コンパイラが NoSuchMethodError で失敗し始めました。メソッドパラメーターを Long から long に更新したときに発生し始めました。必要はありませんが、元に戻そうとしましたが、まだ同じエラーが発生しています。私の Java Eclipse ランタイム コンパイラはこの行をエラーとして認識せず、すべてが開発モードで正常に動作しています。

Caused by: java.lang.NoSuchMethodError: com.dscicorp.ribeye.shared.dto.Data.put(Ljava/lang/String;Ljava/lang/Long)Ljava/lang/String;

つまり、long と Long を別の型として扱っているようです。実際のメソッドは次のようになります。

public String put(String key, long value) {
    return put(key, Long.toString(value));
}

これが何か関係があるかどうかはわかりませんが、エラーメッセージでは、コードの内容とは少し異なる行が出力されています。long 変数「val」を「Long.valueOf(val)」に置き換えました。

this.this$01.reportOptions.put("noteTypes", Long.valueOf(val))

長いバージョンと長いバージョンの両方を追加して、この問題が解決したかどうかを確認してみましたが、別の場所で同様にエラーが発生しました。これは GWT のバグですか、それとも設定が間違っている可能性がありますか?

完全なコンパイラ ログは次のとおりです。

gwtc:
 [java] Compiling module com.dscicorp.ribeye.RibEye
 [java]    Computing all possible rebind results for 'com.dscicorp.ribeye.client.generated.ReflectiveFactory'
 [java]       Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]          Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator
 [java]             Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]       Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]          Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator
 [java]             Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]       Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]          Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator
 [java]             Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]       Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]          Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator
 [java]             Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]       Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]          Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator
 [java]             Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory
 [java]    [ERROR] An internal compiler exception occurred
 [java] com.google.gwt.dev.jjs.InternalCompilerException: Unexpected error during visit.
 [java]     at com.google.gwt.dev.jjs.ast.JVisitor.translateException(JVisitor.java:121)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:296)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
 [java]     at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:128)
 [java]     at com.google.gwt.dev.jjs.ast.JExpressionStatement.traverse(JExpressionStatement.java:42)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:95)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:351)
 [java]     at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:92)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
 [java]     at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:149)
 [java]     at com.google.gwt.dev.jjs.ast.JIfStatement.traverse(JIfStatement.java:53)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:95)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:351)
 [java]     at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:92)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
 [java]     at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:149)
 [java]     at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:145)
 [java]     at com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:83)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
 [java]     at com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:600)
 [java]     at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:569)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
 [java]     at com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:1505)
 [java]     at com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:870)
 [java]     at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.unifyJavaAst(JavaToJavaScriptCompiler.java:1305)
 [java]     at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.constructJavaAst(JavaToJavaScriptCompiler.java:1038)
 [java]     at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.precompile(JavaToJavaScriptCompiler.java:954)
 [java]     at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.precompile(MonolithicJavaToJavaScriptCompiler.java:303)
 [java]     at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:38)
 [java]     at com.google.gwt.dev.Precompile.precompile(Precompile.java:286)
 [java]     at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
 [java]     at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
 [java]     at com.google.gwt.dev.Compiler.run(Compiler.java:206)
 [java]     at com.google.gwt.dev.Compiler.run(Compiler.java:158)
 [java]     at com.google.gwt.dev.Compiler$1.run(Compiler.java:120)
 [java]     at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
 [java]     at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
 [java]     at com.google.gwt.dev.Compiler.main(Compiler.java:127)
 [java] Caused by: java.lang.NoSuchMethodError: com.dscicorp.ribeye.shared.dto.Data.put(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/String;
 [java]     at com.google.gwt.dev.jjs.impl.UnifyAst.translate(UnifyAst.java:1715)
 [java]     at com.google.gwt.dev.jjs.impl.UnifyAst.access$1100(UnifyAst.java:134)
 [java]     at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.visit(UnifyAst.java:416)
 [java]     at com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:245)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
 [java]     at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
 [java]     ... 42 more
 [java]       [ERROR] at MasterWorkLogSearchReportPage.java(281): this.this$01.reportOptions.put("noteTypes", Long.valueOf(val))
 [java]          com.google.gwt.dev.jjs.ast.JMethodCall
 [java]       [ERROR] at MasterWorkLogSearchReportPage.java(281): this.this$01.reportOptions.put("noteTypes", Long.valueOf(val))
 [java]          com.google.gwt.dev.jjs.ast.JExpressionStatement
 [java]       [ERROR] at MasterWorkLogSearchReportPage.java(280): {
 [java]   this.this$01.reportOptions.put("noteTypes", Long.valueOf(val));
 [java] }
 [java]          com.google.gwt.dev.jjs.ast.JBlock
 [java]       [ERROR] at MasterWorkLogSearchReportPage.java(280): if (val > 0) {
 [java]   this.this$01.reportOptions.put("noteTypes", Long.valueOf(val));
 [java] } else {
 [java]   this.this$01.reportOptions.remove("noteTypes");
 [java] }
 [java]          com.google.gwt.dev.jjs.ast.JIfStatement
 [java]       [ERROR] at MasterWorkLogSearchReportPage.java(277): {
 [java]   long val = this.this$01.getNoteTypesValue();
 [java]   if (val > 0) {
 [java]     this.this$01.reportOptions.put("noteTypes", Long.valueOf(val));
 [java]   } else {
 [java]     this.this$01.reportOptions.remove("noteTypes");
 [java]   }
 [java] }
 [java]          com.google.gwt.dev.jjs.ast.JBlock
 [java]       [ERROR] at MasterWorkLogSearchReportPage.java(277): {
 [java]   long val = this.this$01.getNoteTypesValue();
 [java]   if (val > 0) {
 [java]     this.this$01.reportOptions.put("noteTypes", Long.valueOf(val));
 [java]   } else {
 [java]     this.this$01.reportOptions.remove("noteTypes");
 [java]   }
 [java] }
 [java]          com.google.gwt.dev.jjs.ast.JMethodBody
 [java]       [ERROR] at MasterWorkLogSearchReportPage.java(277): public void execute();
 [java] 
 [java]          com.google.gwt.dev.jjs.ast.JMethod
4

1 に答える 1

1

新しい Eclipse プロジェクトを作成し、同じコードをインポートすることで問題を解決しました。これはおそらく何らかのキャッシュの問題でしたが、gwt-unitCache ディレクトリを消去しても問題は解決しませんでした。

于 2016-03-14T12:50:25.213 に答える