[导入]通过Spring进行远程服务访问

Posted on 2007-03-01 17:05 Java.net 阅读(438) 评论(0)  编辑  收藏 所属分类: 开源项目

网站:JavaEye 作者:jvincent 发表时间: 2007-03-01 17:05 此文章来自于 http://www.JavaEye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://xzgf.javaeye.com/blog/56776

最近在做一个项目开发框架.前台使用Applet,服务器端最先考虑使用EJB3进行开发,但由于EJB采用的是RMI-IIOP协议进行底层数据传输,难于跨越防火墙,故考虑使用Spring提供的远程服务访问技术进行服务器端的编程.测试成功,记录下来..


环境:Eclipse3.2.2 JDK1.5 Spring2.0.2


1、由于客户端采用Applet,需要下载代码到客户端,简单起见,将所有的class都打包在一个jar包中,供客户端下载.以后考虑对下载的类进行缓存,以提高应用效率.

2、在IE中对applet进行配置,通过classid可以检测客户端的jre环境,如果不是需要的jdk版本,这里为1.5,则通过/Client下的客户端程序进行下载.由于应用定位于局域网中,下载一个20多M的程序应该不成问题..

3、applet访问本地资源的策略略过,有兴趣的可以留言....


下面主要介绍一下如果在Spring2.0.2中进行远程服务访问

1、定义客户端接口,此接口是暴露给客户端的....


接口中只有一个方法sayHello,作用是;根据客户端传入的str,传到服务器端连接一个字符串,再传到客户端.


2、定义一个类,实现IHelloWorld接口.


3、接下来就是通过xml文件进行组件的配置..

Spring的远程服务访问是通过org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter和org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean 两个类来实现的.HttpInvokerServiceExporter负责将定义的服务进行导出,是目标服务暴露出来.HttpInvokerProxyFactoryBean 负责客户端代理.将http的post请求定位到指定的服务.默认情况下,Spring使用J2SE的http功能.可以通过注入将commons的httpclient指定给HttpInvokerProxyFactoryBean..

步骤:

1、web.xml文件:添加org.springframework.web.context.ContextLoaderListener监听.定义一个org.springframework.web.servlet.DispatcherServlet

命名为 httpinvoker..之后当服务器启动是会自动到WEB-INF下寻找httpinvoker-servlet.xml文件进行bean初始化.

之后定义一个servlet-mapping,使所有以/http/结尾的请求全部定位到httpinvoker Servlet上

2、applicationContext.xml 定义一个Bean  初始化HelloWorldImpl.

3、httpinvoker-servlet.xml 定义两个Bean BeanNameUrlHandlerMapping用于根据BeanName进行映射...HttpInvokerServiceExporter用于远程服务导出.

4、以上三步就已经完成了远程服务的复制工作.以下实现客户端的调用配置.clientContext.xml用于配置客户端的访问..即指定服务器的地址、端口等基础信息.

5、最后就可以在代码进行初始化clientContext.xml文件,通过ctx.getBean(helloWorldService);来进行访问了.


 


java 代码




  1. public class HelloWorldImpl implements IHelloWorld {   
  2.     public String sayHello(String str) {   
  3.         return str +  " ,  欢迎使用Spring远程服务访问..."  
  4.     }   
  5. }   


 


java 代码




  1. public interface IHelloWorld {    
  2.     public  String sayHello(String str);   
  3. }   

 




《 通过Spring进行远程服务访问 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>

推荐相关文章:
  Google Guice - 比Spring快100倍的IoC容器
  关于Service和DAO层的功能划分的迷惑




JavaEye推荐
广州:梦境网络公司:薪水+期权诚聘高级人才 C++工程师 和 Java工程师
北京:高薪诚聘Ruby on Rails高手: 月薪15-25K
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA



文章来源: http://xzgf.javaeye.com/blog/56776

只有注册用户登录后才能发表评论。


网站导航: