2012-01-12 48 views
1

我做了我的GWT应用程序的一些重构时,并与RPC处理它的多个模块(即多个* .gwt.xml和入口点)做多GWT模块

一切似乎都做工精细,除了RPC 。因为我重构应用,从单一mygwtapp.gwt.xml成多个gwt.xml文件:

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

等等...

我不得不改变从servlet映射URL模式:

/mygwtapp/someRPC 

分成/main/someRPC以确保RPC的主模块能够正常工作。它适用于主模块,但不适用于其他模块。由于每个模块除了具有相对于其模块名称的RPC调用,例如/user/someRPC

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

回答

1

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

+0

哇。父目录(../)的诀窍是否真的有用? – 2012-01-12 20:10:19

+0

什么阻止你尝试? :) – milan 2012-01-13 03:48:08

+0

躺在我的床上用平板电脑? – 2012-01-13 06:50:13

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>