[導入]通過Spring進行遠程服務訪問

          Posted on 2007-03-01 17:05 Java.net 閱讀(446) 評論(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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 安达市| 内丘县| 吕梁市| 文山县| 龙门县| 镇赉县| 南岸区| 临夏县| 三明市| 威远县| 高陵县| 宣威市| 赤水市| 米易县| 罗江县| 汶上县| 兴城市| 宿松县| 大安市| 新乐市| 科技| 潼关县| 柘城县| 隆化县| 淳化县| 华坪县| 沛县| 夹江县| 太保市| 濮阳市| 景泰县| 长沙县| 民勤县| 金平| 兴国县| 百色市| 个旧市| 武功县| 白银市| 永平县| 聂荣县|