在JBoss Seam中使用GWT

原文地址:http://dev.ymeng.net/integrate-gwt-into-jboss-seam.html

 

这几天在JBoss Seam集成GWT,试了很多时间,总结出一些问题:

JBoss Seam版本:2.1.0.SP1

Google Web Toolkit版本:1.5.3

 

1、gwt-servlet.jar版本问题:Seam中自带的gwt-servlet.jar版本可能和你使用的GWT版本不一致,如果你编译GWT程序的版本与Seam中gwt-servlet.jar版本不一致,可能会出现一些奇怪的问题,最好的办法是将Seam中的gwt-servlet.jar换成GWT中带的jar。

 

2、Seam Resource Servlet的配置和GWT程序中Service Entry Point的设置:Seam中的默认url pattern是/seam/resource/*,所以Seam会把对/seam/resource/gwt/*的请求发送给org.jboss.seam.remoting.gwt.GWT14Service处理,GWTService才会根据GWT客户端发送的请求类和方法来进行调用。需要注意的是,根据跟踪Seam的GWTService发现,客户端发送的请求类似于“5|0|6|http://127.0.0.1:8080/SeamGWT/|5BA8A5B3E35F40698BB0BF65F390BCF2|com.tiandinet.gwt.hello.client.HelloService|sayHello|java.lang.String|your name|1|2|3|4|1|5|6|”,而Seam的GWTService.getResource会根据com.tiandinet.gwt.hello.client.HelloService名称查找Seam组件,此组件即为GWT中的远程服务接口的Seam实现,所以在设置此实现类的@Name属性时,需要将其设置为GWT中远程服务接口的类名。
所以,对于Service Entry Point的设置,只要URL能匹配到/seam/resource/gwt/即可,而Seam Reference示例中的String endpointURL = GWT.getModuleBaseURL() + “seam/resource/gwt”;可能不一定正确,因为根据GWT编译后页面路径在Seam应用中所处的位置不同,GWT.getModuleBaseURL()返回的路径可能就不能匹配到/seam/resource/gwt。

 

3、Seam Resource Servlet映射
/web=org.jboss.seam.ui.resource.WebResource
/captcha=org.jboss.seam.captcha.CaptchaImage
/remoting=org.jboss.seam.remoting.Remoting
/gwt=org.jboss.seam.remoting.gwt.GWT14Service
/graphicImage=org.jboss.seam.ui.graphicImage.GraphicImageResource

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值