锁定老帖子 主题:gwt spring 完美整合
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-25
1.3版本前整合gwt spring,用到了第三方类,如cglib扩展类具备gwt servlet的功能,随着1.4版本的发布(发布很久了T_T '),整合有了新的方式,闲话不说,看看整合后的servlet如何调用服务: java 代码
xml代码:
java 代码
ok,该servlet继承RemoteServiceServlet,做了三件事 1.init时获得spring webContext 2.service时解析请求字符,如/service/bookservice,获得bookservice名,对应spring bean id 3.重写processCall方法,通过bookservice,在springContext中获得注册了的bookservice,提供调用 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-11-26
新架构优势:
1.没有使用第三方包扩展,更快速、更稳定 2.由一个servlet转发请求,服务类为spring注册的类,无需继承RemoteServlet,服务类不是servlet |
|
返回顶楼 | |
发表时间:2007-11-27
这样做好像不支持aop
|
|
返回顶楼 | |
发表时间:2007-11-28
支持啊,其实就是gwt调用了一个spring服务,而spring服务是一个gwt服务而已
|
|
返回顶楼 | |
发表时间:2007-11-28
方便快速强大,不要把简单问题复杂化
|
|
返回顶楼 | |
发表时间:2007-11-30
谢谢yongyuan.jiang,支持aop
另一个版本 delegate 用法参照 org.springframework.web.servlet.mvc.multiaction.MultiActionController public class GwtRemoteServiceController extends RemoteServiceServlet implements Controller, ServletContextAware { private static final long serialVersionUID = 8175888785480720736L; private Object delegate; private ServletContext servletContext; @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @Override public ServletContext getServletContext() { return servletContext; } @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { super.doPost(request, response); return null; } @Override public String processCall(String payload) throws SerializationException { Object delegateToUse = this.delegate; if (delegateToUse == null) { return super.processCall(payload); } else { try { RPCRequest rpcRequest = RPC.decodeRequest(payload, delegateToUse.getClass(), this); return RPC.invokeAndEncodeResponse(delegateToUse, rpcRequest .getMethod(), rpcRequest.getParameters(), rpcRequest .getSerializationPolicy()); } catch (IncompatibleRemoteServiceException ex) { getServletContext() .log( "An IncompatibleRemoteServiceException was thrown while processing this call.", ex); return RPC.encodeResponseForFailure(null, ex); } } } public Object getDelegate() { return delegate; } public void setDelegate(Object delegate) { this.delegate = delegate; } } |
|
返回顶楼 | |
发表时间:2007-12-03
so good ,唉。我对spring那个ModelAndView 还是不懂
|
|
返回顶楼 | |
发表时间:2008-01-02
yongyuan.jiang,对你的代码我有些疑惑,还请多多指教。
1 perThreadRequest和perThreadResponse是private的,你这里怎么可以引用? 2 HttpRequestContext这个类是哪里的? 3 readPayloadAsUtf8这个方法为什么我引用不到? 谢谢! |
|
返回顶楼 | |
发表时间:2008-01-09
哦,是这样子的。
1 perThreadRequest和perThreadResponse是private的,你这里怎么可以引用? 我把父类的方法全部写成protected了 2 HttpRequestContext这个类是哪里的? 这个类是自己写的一个类,用于存放requestde 3 readPayloadAsUtf8这个方法为什么我引用不到? 这个方法也是在父类当中 |
|
返回顶楼 | |
发表时间:2008-05-14
博主是javaeye上的gwt第一高人,特别希望博主可以就如何用gwt开发一个伸展性比较好的应用整理出一篇完整的文章,这样大家学习起来也比较方便。 再次谢谢博主。 |
|
返回顶楼 | |