【问题标题】:Autobean category runs well on develoment mode but fails when GWT-compilingAutobean 类别在开发模式下运行良好,但在 GWT 编译时失败
【发布时间】:2011-10-07 11:10:44
【问题描述】:

此代码在开发模式下运行良好,但在 gwt 编译时失败并出现异常。我不知道为什么。 MechanicCategory 类在路径上,使用 eclipse 编译良好,并且在开发模式下运行良好,但 gwt 编译失败... :-/ 有什么想法吗?

public interface Entity<K> {
    public K getId();
    public void setId(K value);
}

public interface Mechanic extends Entity<Integer> {
    List<UsualBase> getUsualBases();

    boolean performCalculation(Date date);
}

@Category(MechanicCategory.class)
public interface BeanFactory extends AutoBeanFactory {
    BeanFactory INSTANCE = GWT.create(BeanFactory.class);

    AutoBean<Mechanic> mechanic();
}

public class MechanicCategory {
    public static boolean performCalculation(AutoBean<Mechanic> instance, Date date) {
        return false;
    }
}


  [java] Compiling module es.company.product.loader.Loader
     [java]    Resolving es.company.product.commons.client.beans.BeanFactory
     [java]       Found type 'es.company.product.commons.client.beans.BeanFactory'
     [java]          [ERROR] Annotation error: cannot resolve es.company.product.commons.client.beans.categories.MechanicCategory
     [java] java.lang.ClassNotFoundException: es.company.product.commons.client.beans.categories.MechanicCategory
     [java]     at java.net.URLClassLoader$1.run(Unknown Source)
     [java]     at java.security.AccessController.doPrivileged(Native Method)
     [java]     at java.net.URLClassLoader.findClass(Unknown Source)
     [java]     at java.lang.ClassLoader.loadClass(Unknown Source)
     [java]     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
     [java]     at java.lang.ClassLoader.loadClass(Unknown Source)
     [java]     at java.lang.Class.forName0(Native Method)
     [java]     at java.lang.Class.forName(Unknown Source)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:750)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:689)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediator.createAnnotation(TypeOracleMediator.java:498)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotation(TypeOracleMediator.java:648)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotations(TypeOracleMediator.java:663)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediator.resolveClass(TypeOracleMediator.java:809)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediator.addNewTypes(TypeOracleMediator.java:439)
     [java]     at com.google.gwt.dev.javac.TypeOracleMediatorFromSource.addNewUnits(TypeOracleMediatorFromSource.java:52)
     [java]     at com.google.gwt.dev.javac.CompilationState.assimilateUnits(CompilationState.java:164)
     [java]     at com.google.gwt.dev.javac.CompilationState.<init>(CompilationState.java:82)
     [java]     at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:450)
     [java]     at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:370)
     [java]     at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:360)
     [java]     at com.google.gwt.dev.Precompile.precompile(Precompile.java:252)
     [java]     at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
     [java]     at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
     [java]     at com.google.gwt.dev.Compiler.run(Compiler.java:232)
     [java]     at com.google.gwt.dev.Compiler.run(Compiler.java:198)
     [java]     at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
     [java]     at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
     [java]     at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)
     [java]     at com.google.gwt.dev.Compiler.main(Compiler.java:177)
     [java]          [ERROR] Annotation error: expected class java.lang.Class, got null

【问题讨论】:

    标签: gwt categories autobean


    【解决方案1】:

    解决了! gwt 编译时war/WEB-INF/classes 必须在类路径中。

    编辑:我的意思是你需要类路径中的 .class 字节码文件,所以你需要在使用 gwt 编译它之前 javac 项目

    【讨论】:

      猜你喜欢
      • 2019-04-25
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多