我正在研究GWT和OSGi + PAX-Web问题的解决方案.特别的问题是GWT无法加载序列化策略文件,给出以下错误:
ERROR: The serialization policy file '/ctx/ctx/6ExxxxxxxxxxxxxxxxF.gwt.rpc' was not found; did you forget to include it in this deployment?
问题出在Equinox OSGi和PAX-WEB之间.
为了找到解决方案,我想更好地了解GWT-RPC如何加载序列化策略文件.
(免责声明:我已经在生成的文件中阅读了gwt文档[2].我正在寻找更多低级细节:我的印象是我们所遇到的错误必须处理HttpContext.getResource())
Tho*_*yer 11
一切都在RemoteServiceServlet
.
他们的生命周期是什么?他们什么时候装?(我看到它是在服务器启动时.生命周期中的任何特殊性?重新加载?)
它们在第一次使用时加载(第一次请求收到)并缓存在servlet的一个字段中,因此它们的生命周期与servlet本身的生命周期相关联.
GWT如何在其堆栈中加载此文件?在请求的调用堆栈中的什么位置?GWT如何知道从何处加载它们?我可以告诉GWT它应该在哪里寻找这个文件吗?
servlet.getServletContext().getResourceAsStream
.您可以通过覆盖来自定义doGetSerializationPolicy
(如JavaDoc中所述).
文件名(资源URL)是根据请求的路径和X-GWT-Permutation
请求标头构建的.