亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java Web Services的遠端調用

2019-11-18 12:54:12
字體:
來源:轉載
供稿:網友

  微軟公司提出.Net概念后很快就被認為是以后網絡服務的發展方向,其中的Web service概念更被認為是將來的工業標準(其中的SOAP、WSDL、UDDI已經是標準了)。而作為微軟公司的老對手SUN公司自然不甘心落后,不久就開發了SUN-ONE(Sun[tm] Open Net Environment)用來開發Web Services,并提供了java WSDP(Java Web Services Developer Pack)工具包。
  Web Services簡單的來說就是網絡服務,譬如一個商業客戶在網絡上通過SOAP協議發送一個請求,服務端接收這個請求并處理它,然后發送一個響應給客戶端。Web Service程序在服務端需要用容器配置,這個容器可以是一個Servlet容器,如:Tomcat或者是基于EJB之上的J2EE 容器。Web Service還用WSDL(Web Service Description Language)描述自己,這種描述包括Web Service的名字、可以被調用的方法名、這些方法的參數以及發送請求的位置等,這樣用戶就可以方便地通過WSDL去發現Web Service并取得服務,然后利用Java API for xml-based RPC(JAX-RPC)實現對Web Service的調用。
  舉一個典型的例子,如有個商家想訂購商品,他可以直接到去每一家供貨商詢問,但有一個方便的方法是通過UDDI(Universal Description,Discovery and Integration)注冊中心去查找供貨商,發現哪些才是自己要找的供貨商。因為供貨商在注冊中心注冊他們的Web Service,這樣就能被網絡潛在的客戶所發現。
  JAX-RPC中有一個工具:xrpcc,它可以根據WSDL產生一個stub類作為客戶端的代理,以及一個tie類作為服務端的代理。JAX-RPC將客戶端調用轉換成一個基于HTTP請求的SOAP消息發送給服務器,服務器收到客戶請求,把SOAP消息轉換成方法調用并調用服務器的Web Service方法,再通過JAX-RPC將結果包裝成SOAP消息形式返回給客戶。
  用JAX-RPC開發Web Service非常的輕易。一個Web Service有兩個文件:一個是接口,用來定義Web Service的遠端可以調用的方法;另外一個實現了這個接口方法的類。
  如定義了Web Service方法的接口:
  package coffees;
  import java.rmi.Remote;
  import java.rmi.RemoteException;
  public interface CoffeeOrderIF extends Remote {
  
  public Coffee [] getPRiceList() //Web Service方法
  
  throws RemoteException;
  
  public String orderCoffee(String coffeeName, int quantity) //Web Service方法
  
  throws RemoteException;
  
  }
  實現了上述接口的類如:
  package coffees;
  public class CoffeeOrderImpl implements CoffeeOrderIF {
  
  public Coffee [] getPriceList() throws RemoteException; {
  //方法內容
  }
  public String orderCoffee(String coffeeName, int quantity)
  
  throws RemoteException; {
  
  //方法內容
  
  }
  定義了Web Service,客戶就可以進行遠端調用了。一個典型的客戶調用程序如下:
  package coffees;
  public class CoffeeClient {
  public static void main(String[] args) {
  
  try {
  
  CoffeeOrderIF coffeeOrder = new
  
  CoffeeOrderServiceImpl().getCoffeeOrderIF();//調用服務端的Web Service方法
  
  Coffee [] priceList =
  
  coffeeOrder.getPriceList()://調用服務端的Web Service方法
  
  for (int i = 0; i < priceList.length; i++) {
  
  System.out.print(priceList[i].getName() + " ");
  
  System.out.println(priceList[i].getPrice());
  
  }
  
  } catch (Exception ex) {
  ex.printStackTrace();
  }
  }
  }
  JAX-RPC可以創建基于RPC(remote procedure calls)和XML的“客戶-服務”程序。因為使用的是分布的“客戶-服務”模式,RPC機制能使客戶運行其它系統的程序。
  一個遠端調用是靠基于XML技術之上的SOAP協議描述與傳輸的。SOAP協議定義消息封裝結構,編碼規則和一個描述響應的協定。這些調用和響應是靠SOAP傳輸的,目前JAX-RPC是基于SOAP1.1和HTTP1.1。
  盡管JAX-RPC是依靠復雜的協議(SOAP),但JAX-RPC的API對開發者隱藏了復雜性。在服務端,開發者指定接口中可以被遠端調用的方法,開發者可以寫一個或多個類去實現這些方法。而客戶端程序非常輕易去編寫。通過指定服務端的URI,客戶可以簡單的調用這些方法。
  使用JAX-RPC,客戶和服務器有一個非常大的優勢:平臺獨立性。并且JAX-RPC不受限制,如:一個JAX-RPC客戶能夠調用不同平臺的Web Service,反之亦然。
  因為JAX-RPC是使用W3C(World Wide Web Consortium)技術,所以具有擴展性。
  W3C包括:HTTP、SOAP和WSDL。
  下面有一個簡單的例子說明JAX-RPC的實現:
  Java Web Services的遠端調用
  1. 調用一個遠端程序:HelloClient程序調用本地stub對象中描述遠端Web Service的方法;
  2. stub對象通過JAX-RPC系統調用程序;
  3. 系統將遠端程序調用轉換成SOAP消息并通過HTTP把它傳輸到服務器去;
  4. 當服務器接收到客戶的SOAP消息,通過JAX-RPC系統將SOAP消息轉換成方法調用;
  5. 調用tie對象中的方法;
  6. tie調用實現了HelloWorld服務的方法;
  7. 系統將調用方法的結果轉換成SOAP消息響應給客戶;
  8. 客戶接收響應來的SOAP消息,分析它并取得方法調用的結果。
  服務端程序如下:
  定義Web方法的接口HelloIF.java:
  package hello;
  import java.rmi.Remote;
  import java.rmi.RemoteException;
  public interface HelloIF extends Remote {
  
  public String sayHello(String s) throws RemoteException; // Web 方法,可以被客戶調用
  實現Web方法的類HelloImpl.java:
  package hello;
  public class HelloImpl implements HelloIF {
  public String message ="Hello";
  public String sayHello(String s) { //具體方法實現
  return message + s;
  }
  }
  客戶程序HelloClient.java:
  package hello;
  import javax.xml.rpc.Stub;
  public class HelloClient {
  public static void main(String[] args) {
  
  try {
  
  Stub stub = createProxy();//實現遠端調用的對象
  
  stub._setProperty(
  
  javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY,
  
  args[0]);
  
  HelloIF hello = (HelloIF)stub;
  
  System.out.println(hello.sayHello("Duke!"));//調用服務端的方法
  
  } catch (Exception ex) {
  
  ex.printStackTrace();
  
  }
  
  }
  private static Stub createProxy() {
  
  // Note: HelloWorld_Impl is implementation-specific.
  
  return (Stub)(new HelloWorld_Impl().getHelloIFPort());
  }
  }
  當配置好服務端并編譯了客戶端HelloClient.java,可以運行客戶程序如:ant run ,假如一切正確,將顯示:
  Hello Duke!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲激情视频在线观看| 色哟哟亚洲精品一区二区| 欧美又大又硬又粗bbbbb| 欧美高清理论片| 国产欧美久久一区二区| 国产精品日韩在线| 亚洲一区二区精品| 日韩最新中文字幕电影免费看| 国产一区二区三区在线播放免费观看| 国产亚洲欧美视频| 98精品国产自产在线观看| 欧美激情极品视频| 欧美在线视频一二三| 中文字幕久久久av一区| 欧美日韩裸体免费视频| 亚洲精品综合精品自拍| 亚洲欧美在线x视频| 久久久精品日本| 欧美视频中文在线看| 久久国产精品亚洲| 91爱爱小视频k| 成人福利网站在线观看11| 欧美制服第一页| 欧美在线免费观看| 国产精品一区二区三区久久| 欧美视频在线观看免费| 亚洲免费电影一区| 国产精品成人一区二区三区吃奶| 日韩中文在线观看| 中文字幕av一区二区三区谷原希美| 亚洲国产精久久久久久久| 日韩av综合网| 欧美另类极品videosbestfree| 欧美精品激情在线观看| 欧美性受xxx| 色噜噜狠狠狠综合曰曰曰88av| 久99九色视频在线观看| 精品国产一区二区三区久久久| 国产美女精品视频免费观看| 日韩免费在线观看视频| 亚洲人成人99网站| 久久精品国产欧美亚洲人人爽| 欧美裸身视频免费观看| 国产成人精品视| 91免费在线视频网站| 在线播放日韩精品| 久久久99久久精品女同性| 欧美另类在线播放| 亚洲丝袜一区在线| 国产91在线高潮白浆在线观看| 日本精品一区二区三区在线播放视频| 亚洲精品日韩激情在线电影| 91精品国产高清久久久久久91| 亚洲一区二区三区毛片| 日韩在线视频免费观看高清中文| 九九九热精品免费视频观看网站| 亚洲国产精品人久久电影| 性亚洲最疯狂xxxx高清| 91九色综合久久| 4438全国成人免费| 欧美电影免费观看网站| 色综合视频一区中文字幕| 日韩欧美福利视频| 国产精品网红直播| 国产精品久久久久77777| 亚洲精品在线91| 成人日韩av在线| 欧美中文字幕精品| 国产精品av电影| 久久久精品欧美| 成人444kkkk在线观看| 亚洲国产私拍精品国模在线观看| 国模精品视频一区二区三区| 国外成人免费在线播放| 国产91av在线| 91免费看片在线| 亚洲成色777777女色窝| 亚洲视频在线视频| 2023亚洲男人天堂| 伊人伊人伊人久久| 中文字幕自拍vr一区二区三区| 亚洲伊人第一页| 色偷偷9999www| 欧美日韩性视频| 日韩禁在线播放| 日韩中文字幕国产| 亚洲成人xxx| 日韩精品欧美国产精品忘忧草| 78色国产精品| 日韩少妇与小伙激情| 亚洲女性裸体视频| 丝袜亚洲另类欧美重口| 韩国美女主播一区| 日韩电影大片中文字幕| 中文字幕日韩欧美精品在线观看| 国产精品自产拍高潮在线观看| 伊人伊成久久人综合网站| 91免费视频国产| 4p变态网欧美系列| 国产免费一区二区三区香蕉精| 成人日韩在线电影| 欧洲成人性视频| 亚洲人成伊人成综合网久久久| 成人在线视频网站| 欧美视频二区36p| 欧美一区第一页| 亚洲97在线观看| 欧美人交a欧美精品| 欧美裸体视频网站| 91色视频在线导航| 欧美日韩在线视频一区二区| 欧美裸体视频网站| 国产97在线|亚洲| 97不卡在线视频| 色婷婷**av毛片一区| 欧美另类交人妖| 国内免费久久久久久久久久久| 亚洲第一区中文字幕| 欧美—级高清免费播放| 国产成人拍精品视频午夜网站| 亚洲国产精品福利| 精品视频偷偷看在线观看| 国产精品jvid在线观看蜜臀| 欧美午夜丰满在线18影院| 欧美孕妇与黑人孕交| 亚洲一区二区精品| 日韩成人久久久| 亚洲专区在线视频| 久久久久久噜噜噜久久久精品| 国产精品jizz在线观看麻豆| 亚洲国产精品va在线看黑人| 日韩欧美在线免费| 久久精品视频中文字幕| 久久久久久成人精品| 久久天天躁夜夜躁狠狠躁2022| 欧美美最猛性xxxxxx| 91九色国产社区在线观看| 久久影视三级福利片| 亚洲精品国产suv| 俺去亚洲欧洲欧美日韩| 亚洲精品久久久久中文字幕欢迎你| 成人av在线天堂| 日本精品一区二区三区在线| 欧美高清在线视频观看不卡| 国产激情久久久| 欧洲亚洲免费在线| 欧美激情视频一区二区| 日韩精品丝袜在线| 精品国产老师黑色丝袜高跟鞋| 国产精品爱久久久久久久| 国内精品久久久久| 亚洲xxxxx性| 国内精品久久久| 日韩中文综合网| 国产91av在线| 国产日韩av高清| 欧美极品美女电影一区| 北条麻妃在线一区二区| 国产精品久久久久久亚洲调教| 性欧美xxxx视频在线观看| 亚洲欧美成人一区二区在线电影| 日韩av一区在线| 久久久久这里只有精品| 国产精品精品国产|