GWT:在另一个模块内调用RPC服务

时间:2011-03-12 17:35:43

标签: gwt module rpc

我有一个模块B,它继承了模块A.当我从A里面的A调用RPC服务时,它们工作正常。但是当我从B中的A调用服务时,RPC调用总是失败。我错过了什么吗?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我在这里找到了我的问题的答案:http://blog.cloudglow.com/2010/03/making-gwt-rpc-endpoint-independent-of.html

默认的GWT RPC服务(Servlet)端点是@RemoteServiceRelativePath(“some_name”),它在运行时在客户端上解析为/ module_base / some_name。此方法的问题是您的RPC端点现在与GWT模块绑定。虽然这可能适用于某些情况,但这不适合我们的情况。因此这篇文章。

我们最终创建了一个RPC服务工厂类,它将创建服务端点的静态实例,并使用正确的端点对其进行种子设定;像这样的东西:

public class ServicesFactory
{
public static final RPCServiceAsync RPCService = GWT.create(RPCService.class);

static
{
((ServiceDefTarget) RPCService).setServiceEntryPoint(GWT.getHostPageBaseURL() + RPCService.END_POINT);
}
}

答案 1 :(得分:0)

还有另一种解决方法。 只需为每个新方法添加一个新的servlet映射。

<servlet-mapping>
    <servlet-name>serverName</servlet-name>
    <url-pattern>/Module1</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>serverName</servlet-name>
    <url-pattern>/Module2</url-pattern>
</servlet-mapping>
相关问题