我有一个带有 2 个 GWT 模块(.gwt.xml
)的应用程序。我想在他们之间共享一个RPC 服务。但是模块有不同的名字,所以第一个模块调用 RPC 服务
FIRSTModuleName/relativepath
(并且有效)
但第二个模块尝试从
SECONDModuleName/relativepath
(它不起作用,因为路径不正确)。
您可以将您的 URL 映射RemoteserviceServlet
到两个 URL(迄今为止最简单的解决方案),或者您可以更改客户端代码以使两个模块调用相同的 URL。
对于后者,不要使用@RemoteServiceRelativePath
,而是将您的服务异步转换为ServiceDefTarget
并setServiceEntryPoint
使用您要使用的 URL 进行调用(@RemoteServiceRelativePath
只是setServiceEntryPoint
自动调用的快捷方式GWT.getModuleBaseURL() + relativePath
)。
我相信您也可以../
在@RemoteServiceRelativePath
.
对于生产,不要忘记向 web.xml 添加第二个 servlet 映射条目。您可以让 servlet 监听任意数量的 URL。
另一种选择是将共享的 RPC 方法放入公共基类中。