`
Rocky_rup
  • 浏览: 146115 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

GWT与Spring集成实现

阅读更多

 

 如题, 实现二者的集成的大体思路是:

 

  1. 由spring的DispatcherServlet拦截来之GWT client的请求,
  2. 并委派给spring的bean.

假设, 由服务接口RPCService, 实现类RPCServiceImpl.

 

  • RPCService.java
public interface RPCService extends RemoteService {

        // RPCService方法声明...
}

 

 

 

实现方案 1

RemoteServiceServlet改造为Controller.

  • web.xml 
<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>
  • gwt-rpc-servlet.xml 
<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 " />
  •   Controller适配器
/**
 * 运用适配器模式,实现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;
	}
}
  • Service扩展适配器
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中有效.


3
0
分享到:
评论
1 楼 郁闷的小黑兔 2010-11-16  
    上代码!

相关推荐

    GWT+Spring demo- springgwt_sudoku

    【标题】"GWT+Spring demo- springgwt_sudoku" 涉及的主要知识点是Google Web Toolkit (GWT) 和Spring框架的整合应用...对于希望深入理解GWT-Spring集成或者开发类似应用的开发者来说,这是一个非常有价值的参考资料。

    gwt+spring+hibernate

    Spring与GWT结合,可以在服务器端处理业务逻辑,通过GWT的Remote Procedure Call (RPC)机制与客户端进行通信。 3. **Hibernate ORM**: Hibernate 是一个流行的Java ORM(对象关系映射)框架,它允许开发者用Java...

    GWT与Spring整合经典文章

    在GWT与Spring的集成中,通常使用Remote Procedure Call (RPC)进行客户端与服务器端的通信。RPC允许Java对象在客户端和服务器之间透明地传递,降低了跨域通信的复杂性。Hibernate则作为ORM工具,处理数据库的映射和...

    gwt+spring

    5. **安全集成**:整合GWT和Spring时,还要考虑安全问题。可以利用Spring Security来保护应用程序,控制用户访问权限,实现认证和授权。 6. **RPC通信**:GWT使用Remote Procedure Call (RPC)机制与服务器通信。你...

    smartGwt、spring、Mybatis整合

    2. **SmartGWT与Spring集成**:SmartGWT的ServiceProxy可以与Spring的Bean集成,通过Spring的ApplicationContext获取服务。这样,GWT客户端可以通过ServiceProxy调用服务器端的Spring服务。 3. **Mybatis与Spring...

    gwt_spring-nolib.zip

    在"gwt_spring-nolib.zip"这个压缩包中,我们可以看到一个实际的GWT和Spring集成示例,用于图书查询功能。这个例子展示了如何将GWT的用户界面层与Spring的业务逻辑和服务层结合起来,实现一个完整的Web应用程序。 ...

    gxt、gwt与spring结合使用

    2. **服务代理(Service Proxy)**:GWT的远程服务调用(RPC)机制可以与Spring的Service层无缝集成,实现客户端与服务器端的通信。GXT同样可以利用GWT的RPC机制,或者使用RESTful API与Spring服务进行交互。 3. **...

    spring集成gwt的办法

    在IT行业中,Spring框架是Java企业级...通过以上步骤,我们可以成功地将Spring与GWT集成,构建出高性能、易于维护的Web应用程序。集成后的应用能够充分利用Spring的强大功能,同时享受到GWT提供的高效前端开发体验。

    gwt spring整合资源下载

    2. **gwt_spring.zip** - 类似于上面的文件,这可能是一个GWT与Spring集成的实例,但以ZIP格式提供,更适合Windows和Mac用户。它可能包括了项目的类文件、资源、配置文件等。 3. **springgwt_sudoku.zip** - 从名字...

    Spring2.5 and GWT 集成 --实现分页查询功能

    实现原理:通过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...

    gwt-spring

    考虑到文件名称列表只有一个 "dojo",这可能是一个目录或者文件,其中包含了Dojo库的相关代码或者配置,或者是与GWT和Spring集成的特定Dojo模块。通常,这样的组合可能是为了展示如何在GWT应用中使用Dojo库,以及...

    搭建简单的EXT-GWT(GXT)的开发环境(三)gxt结合spring和hibernate进行数据操作

    总结起来,EXT-GWT与Spring和Hibernate的集成是企业级Web应用开发的一种常见实践,它利用了GWT的富客户端能力,Spring的服务管理,以及Hibernate的数据库操作便捷性。通过学习和掌握这种集成方式,开发者可以构建出...

    GWT整合Spring

    【GWT整合Spring】是指将Google Web Toolkit (GWT) 应用程序与Spring框架集成,以便利用Spring的强大功能,如依赖注入、事务管理、安全控制等。GWT 是一个用于构建高性能、富客户端Web应用的Java开发工具,而Spring...

    smartgwt+mybatis+spring的整合

    3. **创建SmartGwt组件**:根据业务需求设计并实现SmartGwt的用户界面组件,这些组件通常会与Spring管理的业务服务进行交互。 4. **实现数据访问**:通过Spring的JdbcTemplate或Mybatis的SqlSession,实现数据的增...

    Ext-Gwt(GWT)开发实例(整合Spring +Hibernate)

    在开发过程中,GWT和Spring之间的通信通常通过远程服务调用(RPC)实现,GWT客户端发送请求到Spring管理的服务器端服务,然后由Hibernate处理数据库操作,最后将结果返回给客户端。 在这个实例中,可能包括以下几个...

    Spring4GWT技术资料

    Spring4GWT是将Spring框架与Google Web Toolkit (GWT) 结合的一种技术,它旨在帮助开发者在GWT应用中更好地实现服务层管理和依赖注入,从而提升开发效率和代码的可维护性。以下是对Spring4GWT技术的详细说明: 1. *...

Global site tag (gtag.js) - Google Analytics