如题, 实现二者的集成的大体思路是:
- 由spring的DispatcherServlet拦截来之GWT client的请求,
- 并委派给spring的bean.
假设, 由服务接口RPCService, 实现类RPCServiceImpl.
public interface RPCService extends RemoteService {
// RPCService方法声明...
}
实现方案 1
将RemoteServiceServlet改造为Controller.
<servlet>
<servlet-name>gwt-rpc</servlet-name>
<servlet-class> org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>gwt-rpc</servlet-name>
<url-pattern>/<package>.<modulename>/gwt-rpc/*
</url-pattern>
</servlet-mapping>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<map>
<entry key="/content" value-ref="RPCService" />
</map>
</property>
</bean>
<bean id="RPCService" class="<package>.server. RPCServiceImpl " />
/**
* 运用适配器模式,实现RemoteServiceServlet到Controller的适配改造。
* 此外,实现ServletContextAware为RPC的序列化提供servletContext实例
* 。若不实现的话,会在运行时抛出NullPointException
*
* @author zhongl
*
*/
public class GWTController extends RemoteServiceServlet implements
Controller,ServletContextAware{
/* */
private static final long serialVersionUID = 1L;
private ServletContext servletContext;
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
doPost(request, response);
return null;
}
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public ServletContext getServletContext() {
return servletContext;
}
}
public class RPCServiceImpl extends GWTController implements RPCService{
// RPCService方法实现...
}
实现方案 2
使用GWTRPCServiceExporter, 参见gwt-sl. 此方案中, RPCServiceImpl完全不用实现RPCService, 好处在于RPCServiceImpl不依赖与GWT.
- web.xml 同上
- gwt-rpc-servlet.xml
<bean id="handlerMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean id="RPCService" class="<package>.server. RPCServiceImpl " />
<bean name="/content" class="org.gwtwidgets.server.spring.GWTRPCServiceExporter">
<property name="service" ref="RPCService" />
<property name="serviceInterfaces">
<value> <package>.client. RPCService </value>
</property>
</bean>
参考资料
- Apress - Pro Web 2.0 Application Development with GWT (2008)
- gwt-widgets-server-0.1.5a doc
注意
若使用maven-googlewebtoolkit2-archetype创建项目, 在打包部署之前务必将web.xml中
com.google.gwt.dev.shell.GWTShellServlet的配置删除掉, 它只在HostMode中有效.
分享到:
相关推荐
【标题】"GWT+Spring demo- springgwt_sudoku" 涉及的主要知识点是Google Web Toolkit (GWT) 和Spring框架的整合应用...对于希望深入理解GWT-Spring集成或者开发类似应用的开发者来说,这是一个非常有价值的参考资料。
Spring与GWT结合,可以在服务器端处理业务逻辑,通过GWT的Remote Procedure Call (RPC)机制与客户端进行通信。 3. **Hibernate ORM**: Hibernate 是一个流行的Java ORM(对象关系映射)框架,它允许开发者用Java...
在GWT与Spring的集成中,通常使用Remote Procedure Call (RPC)进行客户端与服务器端的通信。RPC允许Java对象在客户端和服务器之间透明地传递,降低了跨域通信的复杂性。Hibernate则作为ORM工具,处理数据库的映射和...
5. **安全集成**:整合GWT和Spring时,还要考虑安全问题。可以利用Spring Security来保护应用程序,控制用户访问权限,实现认证和授权。 6. **RPC通信**:GWT使用Remote Procedure Call (RPC)机制与服务器通信。你...
2. **SmartGWT与Spring集成**:SmartGWT的ServiceProxy可以与Spring的Bean集成,通过Spring的ApplicationContext获取服务。这样,GWT客户端可以通过ServiceProxy调用服务器端的Spring服务。 3. **Mybatis与Spring...
在"gwt_spring-nolib.zip"这个压缩包中,我们可以看到一个实际的GWT和Spring集成示例,用于图书查询功能。这个例子展示了如何将GWT的用户界面层与Spring的业务逻辑和服务层结合起来,实现一个完整的Web应用程序。 ...
2. **服务代理(Service Proxy)**:GWT的远程服务调用(RPC)机制可以与Spring的Service层无缝集成,实现客户端与服务器端的通信。GXT同样可以利用GWT的RPC机制,或者使用RESTful API与Spring服务进行交互。 3. **...
在IT行业中,Spring框架是Java企业级...通过以上步骤,我们可以成功地将Spring与GWT集成,构建出高性能、易于维护的Web应用程序。集成后的应用能够充分利用Spring的强大功能,同时享受到GWT提供的高效前端开发体验。
2. **gwt_spring.zip** - 类似于上面的文件,这可能是一个GWT与Spring集成的实例,但以ZIP格式提供,更适合Windows和Mac用户。它可能包括了项目的类文件、资源、配置文件等。 3. **springgwt_sudoku.zip** - 从名字...
实现原理:通过GWT的RPC来调用Spring 传过来的服务器端数据 注意:需要的jar包 * gwt-user.jar * gwt-servlet.jar * mysql-connectot-java-3.1.12.jar * spring.jar * commons-dbcp.1.2.1.jar * coommons-pool...
考虑到文件名称列表只有一个 "dojo",这可能是一个目录或者文件,其中包含了Dojo库的相关代码或者配置,或者是与GWT和Spring集成的特定Dojo模块。通常,这样的组合可能是为了展示如何在GWT应用中使用Dojo库,以及...
总结起来,EXT-GWT与Spring和Hibernate的集成是企业级Web应用开发的一种常见实践,它利用了GWT的富客户端能力,Spring的服务管理,以及Hibernate的数据库操作便捷性。通过学习和掌握这种集成方式,开发者可以构建出...
【GWT整合Spring】是指将Google Web Toolkit (GWT) 应用程序与Spring框架集成,以便利用Spring的强大功能,如依赖注入、事务管理、安全控制等。GWT 是一个用于构建高性能、富客户端Web应用的Java开发工具,而Spring...
3. **创建SmartGwt组件**:根据业务需求设计并实现SmartGwt的用户界面组件,这些组件通常会与Spring管理的业务服务进行交互。 4. **实现数据访问**:通过Spring的JdbcTemplate或Mybatis的SqlSession,实现数据的增...
在开发过程中,GWT和Spring之间的通信通常通过远程服务调用(RPC)实现,GWT客户端发送请求到Spring管理的服务器端服务,然后由Hibernate处理数据库操作,最后将结果返回给客户端。 在这个实例中,可能包括以下几个...
Spring4GWT是将Spring框架与Google Web Toolkit (GWT) 结合的一种技术,它旨在帮助开发者在GWT应用中更好地实现服务层管理和依赖注入,从而提升开发效率和代码的可维护性。以下是对Spring4GWT技术的详细说明: 1. *...