AppEngine下的RPC序列化策略文件

时间:2011-10-19 01:46:22

标签: java google-app-engine gwt rpc

GWT / AppEngine RPC界面正在吃我!我得到这样的错误:

INFO: javax.servlet.ServletContext log: UserService: ERROR: The serialization policy file '/55585D0849A4549E3FCE91B33725B02F.gwt.rpc' was not found; did you forget to include it in this deployment?

每次我启动Devserver。我已在public-root中正确设置了appengine-web.xml(除了.gwt.rpc文件外,其他应用程序都已正常运行。

  <static-files>
    <include path="**" />
    <include path="**.nocache.*" expiration="0s" />
    <include path="**.rpc" expiration="0s" />
    <include path="**.cache.*" expiration="365d" />
  </static-files>

  <resource-files>
    <include path="**.gwt.rpc" />
  </resource-files>

我做错了什么?求救!

2 个答案:

答案 0 :(得分:4)

经过一些实验,这就是我想出的:

  • 不要忘记在appengine部署(.rpc文件)中包含appengine-web.xml个文件,并注意缓存问题! (例如,序列化政策的变化)
  • 最好不要在public-root中使用appengine-web.xml代码:将welcome file(例如index.html)放在/目录的war中,然后制作适当更改GWT以查找其文件
  • 更新servlet url-pattern标记以指向war目录中的GWT生成目录

  • 对于与tasks相关联的servlet(即web hooks),请勿更改url-pattern

因此,唯一需要了解GWT生成文件夹的地方就在web.xml。当然,GWT项目的welcome-file也必须进行调整。

希望这有助于某人

答案 1 :(得分:3)

我在部署的GAE服务器上遇到了同样的问题,直到我为资源文件部分添加了rpc include,错误消失了。这就是我最终的结果:

<resource-files>
    <include path="/resources/**" />
    <include path="**.gwt.rpc"/>
</resource-files>

<static-files>
  <include path="**" />
  <include path="**.nocache.*" expiration="0s" />
  <include path="**.cache.*" expiration="365d" />
  <exclude path="**.gwt.rpc"/>
</static-files>