【问题标题】:GWT: Calling RPC Service inside another moduleGWT:在另一个模块中调用 RPC 服务
【发布时间】:2011-03-12 17:35:42
【问题描述】:

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

提前感谢您的帮助。

【问题讨论】:

    标签: gwt module rpc


    【解决方案1】:

    我在这里找到了我的问题的答案: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);
    }
    }
    

    【讨论】:

      【解决方案2】:

      还有另一种解决方法。 只需为每个新方法添加一个新的 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-30
        • 2014-05-15
        • 1970-01-01
        • 2013-11-24
        • 2018-05-29
        • 1970-01-01
        相关资源
        最近更新 更多