GWT编译错误

时间:2010-09-16 16:47:16

标签: gwt enunciate

我整天都在编写我的应用程序,但是它突然开始失败了。从下面可以看出,它是NullPointException,但我不知道出了什么问题。有没有人以前处理过这个问题,或者可以提供任何帮助或指导?

[INFO] [enunciate:assemble {execution: default}]
[INFO] initializing enunciate.
[INFO] invoking enunciate:generate step...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[INFO] invoking enunciate:compile step...
[INFO] [gwt] Compiling module com.project.myProject
[INFO] [gwt] Validating newly compiled units
[INFO] [gwt] [ERROR] Unexpected
[INFO] [gwt] java.lang.NullPointerException
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler$FindTypesInCud.visit(JdtCompiler.java:179)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1253)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.traverse(QualifiedAllocationExpression.java:478)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:576)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration.traverse(ConstructorDeclaration.java:505)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1239)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687)
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.process(JdtCompiler.java:158)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:467)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:142)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:281)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:182)
[INFO] [gwt] at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:280)
[INFO] [gwt] at com.google.gwt.dev.Precompile.precompile(Precompile.java:502)
[INFO] [gwt] at com.google.gwt.dev.Precompile.precompile(Precompile.java:414)
[INFO] [gwt] at com.google.gwt.dev.Compiler.run(Compiler.java:201)
[INFO] [gwt] at com.google.gwt.dev.Compiler$1.run(Compiler.java:152)
[INFO] [gwt] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:87)
[INFO] [gwt] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:81)
[INFO] [gwt] at com.google.gwt.dev.Compiler.main(Compiler.java:159)

2 个答案:

答案 0 :(得分:0)

您是否更新过较新的GWT版本而未更新相关的jar?

默认情况下,Enunciate取决于GWT 1.5.2罐。但是,如果您想要更新到较新版本的Enunciate,则可能需要将依赖项更新为较新版本:

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-user</artifactId>
  <version>2.0.0</version>
</dependency>

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-servlet</artifactId>
  <version>2.0.0</version>
</dependency>

答案 1 :(得分:0)

首先,如果更新GWT不起作用,请尽可能将代码恢复为已知工作版本。

我在编译buggy源时看到了编译器的这条错误消息,包含了对用户定义类型的变量调用方法的错误,其中没有构造任何实例(在编译单元中) ...

我确信以下问题会产生您所看到的错误,我只是将其复制以确保。当然这并不意味着这是您的问题,但它可能会给你需要寻找的东西。

编译器因NullPointerException而失败:

MyDumbClass foo;
foo.doSomething();

没问题:

MyDumbClass foo = new MyDumbClass();
foo.doSomething();

我认为......而且我完全猜测......这与GWT仅为您实际调用的内容输出javascript的事实有关,因此它必须从入口点开始构建调用图并离开输出中的其他所有内容......可能是在该算法中它会抛出MyDumbClass或MyDumbClass的嵌套类型。