我尝试更改为gwt2.4的发布版本并遇到问题。我在我的设置中使用了多个项目。我有一个带有服务器端代码的项目,一个带有共享代码的项目,可用于不同的gwt项目和一个将所有内容绑定在一起的gwt项目。我用maven建造一切。我按照这里的注释处理说明进行操作: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation
当我编译代理和服务所在的共享项目时,会创建带有DeobfuscatorBuilder.java的文件夹“generated-sources \ apt \”。我将此项目的源代码作为我的mainproject的依赖项,并尝试运行验证程序,但此处未创建DeobfuscatorBuilder.java。一切都编译但是当我调用requestfactory时,我得到错误:
com.google.web.bindery.requestfactory.server.UnexpectedException: No RequestContext for operation ZwI9iqZS626uTt_TFwRtUwPYSOE=
我猜我的设置有误,但我找不到... 有人知道如何解决这个问题吗?
此致 ·阿尔
更新
我把它添加到我的pom中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>initialize</phase>
<goals>
<goal>unpack</goal>
<!-- <goal>build-classpath</goal> -->
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.myproject.core</groupId>
<artifactId>shared</artifactId>
<version>${shared.version}</version>
<classifier>sources</classifier>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/com.myproject.shared</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
这将解压缩我的依赖项的源代码并将它们放入我的目标文件夹中。 然后我补充道:
<configuration>
<sourceDirectory>target/com.fileee.shared</sourceDirectory>
</configuration>
到我的处理器插件。
这样就没有必要在工作区中拥有所有项目,它应该与连续集成系统一起使用。如果没有Andys回复,我不会想出来:)
答案 0 :(得分:1)
我有同样的问题,花了几个小时在网上搜索没有任何运气的答案。如果我将处理器插件添加到共享项目中,它会生成DeobfuscatorBuilder类,但是我会得到与您相同的No RequestContext异常。如果我在GWT war项目中只有processsor插件,那么构建器根本就不会生成。
通过大量的反复试验,我发现将共享项目中的源目录添加到war项目的处理器插件配置中... http://code.google.com/p/android-shuffle/source/browse/shuffle-app-engine/pom.xml#269
它有点脏,但它可以解决问题。如果有一个不需要跨项目讨价还价的官方方法,我非常欢迎转换,但我还没有看到任何建议。
干杯 安迪