在与 GWT Module Base 不同的上下文中调用 GWT 服务?

Posted

技术标签:

【中文标题】在与 GWT Module Base 不同的上下文中调用 GWT 服务?【英文标题】:Calling a GWT service in a different context than the GWT Module Base? 【发布时间】:2010-04-13 13:32:31 【问题描述】:

我有一个带有 X-GWT-Module-Base http://host:8080/foo/ 的 GWT 模块,并且想调用位于 http://host:8080/bar/ 的 (GWT) 服务。例如,原因是我希望能够在两个不同的 GWT 客户端项目之间共享 GWT 服务。

到目前为止,我所做的只是服务是否位于模块上下文中,即 http://host:8080/foo/bar 工作正常,在我的服务接口中使用 @RemoteServiceRelativePath("bar")

似乎@RemoteServiceRelativePath 只允许相对于模块基本 URL 的值...那么还有其他方法可以完成我想要完成的任务吗?

【问题讨论】:

【参考方案1】:

最终自己找到了答案right here:

问题出现是因为您使用 RemoteServiceRelativePath 注意到它说的是相对路径, 解决这个问题的一种方法是使用

  ((ServiceDefTarget)gwtService).setServiceEntryPoint("/some/absolute/path");

或使用相对路径的力量(我就是这样做的,因为我是 懒惰)

  @RemoteServiceRelativePath("../servX")

哪个而不是 /modB/servX 或 /modA/servX 将成为 /servX no 不管什么模块叫它 您还需要在 web.xml 中进行适当的更改,以便

【讨论】:

您可以勾选自己作为答案。来自我的 +1。 我将添加 gwtService 这是您从 GWT.create 返回的异步服务对象的名称,您应该在调用 GWT.create 之后调用 setServiceEntryPoint。这是一个令人沮丧的解决方案……它使客户项目的生活变得非常困难(我宁愿将 URL 详细信息包含在库中)。哦,好吧。

以上是关于在与 GWT Module Base 不同的上下文中调用 GWT 服务?的主要内容,如果未能解决你的问题,请参考以下文章

给专家的一份:Plugable gwt module & CompileModule class & XXXX.gwtar file?

带有 gwt 请求工厂的会话上下文

为啥我在与 Twilio 交互的 SMS 应用程序中收到错误 AttributeError: 'module' object has no attribute 'Response'?

核心数据并发调试

如何在 GWT RPC 中将异常从服务器传递到客户端

GWT RequestFactory + CellTable