2012-02-17 82 views
2

美好的一天给大家!我试图创建一个基于谷歌教程示例“GWT开发与活动和地方”文章的项目。我创建了几个地方,并在其中每个Tokenizer类。当我尝试编译项目时,我收到以下错误:无法创建PlaceTokenizer类

Found type 'com.calendarmvp.client.mvp.AppPlaceHistoryMapper' 
    [ERROR] Annotation error: cannot resolve com.calendarmvp.client.place.GreetingsPlace$Tokenizer 
    java.lang.ClassNotFoundException: com.calendarmvp.client.place.GreetingsPlace$Tokenizer 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:750) 
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:689) 
at com.google.gwt.dev.javac.TypeOracleMediator.createAnnotation(TypeOracleMediator.java:498) 
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotation(TypeOracleMediator.java:648) 
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotations(TypeOracleMediator.java:663) 
at com.google.gwt.dev.javac.TypeOracleMediator.resolveClass(TypeOracleMediator.java:809) 
at com.google.gwt.dev.javac.TypeOracleMediator.addNewTypes(TypeOracleMediator.java:439) 
at com.google.gwt.dev.javac.TypeOracleMediatorFromSource.addNewUnits(TypeOracleMediatorFromSource.java:52) 
at com.google.gwt.dev.javac.CompilationState.assimilateUnits(CompilationState.java:164) 
at com.google.gwt.dev.javac.CompilationState.<init>(CompilationState.java:82) 
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:450) 
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:370) 
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:360) 
at com.google.gwt.dev.Precompile.precompile(Precompile.java:252) 
at com.google.gwt.dev.Precompile.precompile(Precompile.java:233) 
at com.google.gwt.dev.Precompile.precompile(Precompile.java:145) 
at com.google.gwt.dev.Compiler.run(Compiler.java:232) 
at com.google.gwt.dev.Compiler.run(Compiler.java:198) 
at com.google.gwt.dev.Compiler$1.run(Compiler.java:170) 
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88) 
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82) 
at com.google.gwt.dev.Compiler.main(Compiler.java:177) 
    [ERROR] Annotation error: expected class java.lang.Class, got null 

我GreetingsPlace类是这样的:

public class GreetingsPlace extends Place { 
    private String GreetingsPlaceName; 

    public GreetingsPlace(String place) { 
    this.GreetingsPlaceName = place; 
    } 

    public String getGreetingsPlaceName() { 
    return GreetingsPlaceName; 
    } 

    public static class Tokenizer implements PlaceTokenizer<GreetingsPlace> { 

    @Override 
    public String getToken(GreetingsPlace place) { 
     return place.getGreetingsPlaceName(); 
    } 

    @Override 
    public GreetingsPlace getPlace(String token) { 
     return new GreetingsPlace(token); 
    } 
    } 
} 

AppPlaceHistoryMapper是这样的:

@WithTokenizers({ 
    HelloPlace.Tokenizer.class, 
    GoodbyePlace.Tokenizer.class, 
    GreetingsPlace.Tokenizer.class, 
    ManagerPlace.Tokenizer.class, 
    UserPlace.Tokenizer.class 
    }) 
public interface AppPlaceHistoryMapper extends PlaceHistoryMapper { 
} 

也许我失去了一些东西。 .. 谁能帮我?提前致谢!

+2

你用'javac'编译代码了吗?看起来像这[一个]相同的问题(http://groups.google.com/group/google-web-toolkit/browse_thread/thread/ad60dd83580f03f1)。 – foch 2012-02-17 21:03:15

+0

非常感谢!我忘了在GWT编译之前重建项目,在Eclipse中关闭自动重建。 – ferbolg 2012-02-19 15:21:43

回答

0

您Sholud添加GWT项目到类路径在Eclipse 运行configurationi(在用户类路径条目) klikd按钮“添加项目。”并检查您的GWT项目。 应用运行配置 和运行

Othere settins是

主要类:com.google.gwt.dev.codeserver.CodeServer

精氨酸:ZA CodeServer klasso 计划Argumennts:-bindAddress 0.0.0.0 com.ajna4taiga.recycling.YourGWTModule VM参数:-Xmx1024m

Classpath还应该有src GWT项目 类路径的 用户条目 高级(按钮) 高级文件夹(添加GWT项目的src目录下) Applay保存运行配置

类路径也应该有 GWT-servercode.jar gwt- dev.jar gwt-user.jar验证-api-1.0.0.GA.jar验证-api-1.0.0.GA-sources.jar mgwt-2.0.0.jar

mgwt如果你有mgwt项目Daniel Kurka。如果你只是gwt proje那么你不需要 需要mgwt-2.0.0.jar