posts - 66,  comments - 11,  trackbacks - 0
          實現WEB服務客戶
          web服務是跨平臺的、跨語言的,所以WEB服務的客戶端使用的語言和平臺和他的服務端沒有必然的關系。比如我們可以在.Net下開發、部署web服務,然后在J2EE平臺下調用它,或者使用在J2EE平臺下開發、部署web服務,然后使用VB來調用它。
          在J2EE平臺中,WEB服務客戶同EJB客戶類似。如下兩種方式能夠訪問到WEB服務:
          1、不借助于JNDI查找,即使用單獨的JAX-RPC客戶訪問。
          2、借助于JNDI上下文訪問WEB服務的J2EE客戶
          第一種方法稱之為靜態存根,此時需要在客戶端預先生成SOAP客戶存根,這同RMI存根類似。第二種方法稱之為動態代理。它將在運行時獲得WSDL描述,然后創建動態代理。無論采用哪種方式訪問WEB服務,客戶都需要獲得服務Endpoint地址URL,否則單憑JNDI名是很難訪問到WEB服務的。
          package com.testproject.ejb.web;

          import java.net.URL;

          import javax.xml.namespace.QName;
          import javax.xml.rpc.Service;
          import javax.xml.rpc.ServiceFactory;

          /**
           * 單獨JAX-RPC客戶代碼實例。
           * 它使用了動態代理方法,以獲得對遠程WEB服務的引用。
           *
           
          */

          public class HelloClient {
              
          static String host = "localhost";
              
          //web服務的名字
              static String serviceURL = "HelloBean";
              
          //名稱空間
              static String nameSpaceUri = "urn:examples";
              
          static String serviceName = "HelloWorldWS";
              
          //web服務調用的地址
              static String serviceEndpointAddress = "http://"+host+":8000"+serviceURL;
              
          public static void main(String[] args)throws Exception{
                  HelloInterface hello 
          = null;
                  
          //動態代理方法
                  
          //1、指定WSDL文件的位置
                  URL url = new URL(serviceEndpointAddress+"?WSDL");
                  
          //2、創建服務工廠實例
                  ServiceFactory serviceFactory = ServiceFactory.newInstance();
                  
          //3、創建服務對象,以作為代理工廠
                  Service HelloService = serviceFactory.createService(url,new QName(nameSpaceUri,serviceName));
                  
          //4、獲得port引用
                  hello = (HelloInterface)HelloService.getPort(HelloInterface.class);
                  
          //調用hello()方法
                  System.out.println("Dynamic Proxy:"+hello.hello());
              }

          }

          posted on 2009-11-13 16:45 王永慶 閱讀(139) 評論(0)  編輯  收藏 所屬分類: EJB學習筆記
          <2009年11月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          關注blogs

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 保山市| 新建县| 临颍县| 安化县| 长武县| 剑阁县| 灵台县| 讷河市| 来宾市| 木里| 平阴县| 崇左市| 漳州市| 新巴尔虎右旗| 桓仁| 固安县| 麻栗坡县| 武宣县| 顺义区| 姚安县| 金华市| 皮山县| 张家港市| 离岛区| 巴东县| 嵩明县| 汉沽区| 广元市| 星座| 大庆市| 临沂市| 壤塘县| 贵德县| 乌鲁木齐市| 江门市| 益阳市| 乡城县| 皮山县| 南溪县| 博白县| 华宁县|