在执行多个GWT模块时处理RPC

时间:2012-01-12 12:16:59

标签: gwt

我对我的gwt应用程序进行了一些重构,并使其成为多个模块(即多个* .gwt.xml和EntryPoint)

除了RPC之外,一切似乎都运行良好。因为我重构了应用程序,从单个mygwtapp.gwt.xml到多个gwt.xml文件:

main.gwt.xml
user.gwt.xml
login.gwt.xml 

依旧......

我必须从以下位置更改servlet映射URL模式:

/mygwtapp/someRPC

进入/main/someRPC以确保RPC将适用于主模块。它适用于主模块,但不适用于其他模块。因为每个模块除了相对于其模块名称(例如/user/someRPC

)进行RPC调用外

这种情况的解决方法是什么?

2 个答案:

答案 0 :(得分:2)

将rpc代码放在共享目录中,在模块描述符中通过source指令引用它,然后在'web.xml`中对同一个servlet进行多次映射。

<servlet-mapping>
    <servlet-name>SomeServiceServlet</servlet-name>
    <url-pattern>/moduleOne/rpc/SomeService</url-pattern>
    <url-pattern>/moduleTwo/rpc/SomeService</url-pattern>
    <url-pattern>/moduleThree/rpc/SomeService</url-pattern>
</servlet-mapping>

答案 1 :(得分:1)

您必须选择使用setServiceEntryPoint()并设置绝对路径(“/ main / someRpc”)或使用@RemoteServiceRelativePath,但将路径设置为(“../main/someRpc”):)