日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载] Web Service工作原理及实例

發布時間:2025/7/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载] Web Service工作原理及实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Web Service基本概念

Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提供的軟件服務,使用WSDL文件進行說明,并通過UDDI進行注冊。

XML:(Extensible Markup Language)擴展型可標記語言。面向短期的臨時數據處理、面向萬維網絡,是Soap的基礎。

Soap:(Simple Object Access Protocol)簡單對象存取協議。是XML Web Service 的通信協議。當用戶通過UDDI找到你的WSDL描述文檔后,他通過可以SOAP調用你建立的Web服務中的一個或多個操作。SOAP是XML文檔形式的調用方法的規范,它可以支持不同的底層接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一個 XML 文檔,用于說明一組 SOAP 消息以及如何交換這些消息。大多數情況下由軟件自動生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一個主要針對Web服務供應商和使用者的新項目。在用戶能夠調用Web服務之前,必須確定這個服務內包含哪些商務方法,找到被調用的接口定義,還要在服務端來編制軟件,UDDI是一種根據描述文檔來引導系統查找相應服務的機制。UDDI利用SOAP消息機制(標準的XML/HTTP)來發布,編輯,瀏覽以及查找注冊信息。它采用XML格式來封裝各種不同類型的數據,并且發送到注冊中心或者由注冊中心來返回需要的數據。

二、調用原理

實現一個完整的Web服務包括以下步驟:

◆ Web服務提供者設計實現Web服務,并將調試正確后的Web服務通過Web服務中介者發布,并在UDDI注冊中心注冊; (發布)

◆ Web服務請求者向Web服務中介者請求特定的服務,中介者根據請求查詢UDDI注冊中心,為請求者尋找滿足請求的服務; (發現)

◆ Web服務中介者向Web服務請求者返回滿足條件的Web服務描述信息,該描述信息用WSDL寫成,各種支持Web服務的機器都能閱讀;(發現)

◆ 利用從Web服務中介者返回的描述信息生成相應的SOAP消息,發送給Web服務提供者,以實現Web服務的調用;(綁定)

◆ Web服務提供者按SOAP消息執行相應的Web服務,并將服務結果返回給Web服務請求者。(綁定)


三、調用方式:

1. Net下采用GET/POST/SOAP方式動態調用WebService的簡易靈活方法(C#)

webservice 的調用有3種方式

1). httpget?
2). httppost
3). httpsoap

soap 的優點是 可以傳遞結構化的 數據,而前兩種不行。
btw, soap 最終也是使用 HTTP 傳送 XM

Webservice實例

一、使用CXF開發Web Service服務端:

每個Web Service組件需要2個部分:接口和實現類: 步驟: 1、準備開發需要的jar包【apache-cxf-2.5.9下載】 2、開發一個webservice業務接口,方法使用@WebService修飾。 [java]?view plaincopy
  • package?com.ywx;??
  • ??
  • import?javax.jws.WebService;??
  • ??
  • @WebService??
  • public?interface?HelloWorld?{??
  • ????String?sayHi(String?name);??
  • }??

  • 3、寫一個這個方法的實現類,方法也需要使用@WebService修飾,并指定其中的參數中,如下指定了所需要實現的接口、并指定服務名稱。 [java]?view plaincopy
  • package?com.ywx.impl;??
  • ??
  • import?java.util.Date;??
  • ??
  • import?javax.jws.WebService;??
  • ??
  • import?com.ywx.HelloWorld;??
  • @WebService(endpointInterface="com.ywx.HelloWorld",serviceName="HelloWorldWs")//指定webservice所實現的接口以及服務名稱??
  • public?class?HellowWorlds?implements?HelloWorld{??
  • ??
  • ????@Override??
  • ????public?String?sayHi(String?name)?{??
  • ????????return?name+"您好!現在時間是:"+new?Date();??
  • ????}??
  • ??
  • }??


  • 4、暴露Web Service的函數,運行函數暴露Web Service: [java]?view plaincopy
  • package?com.ywx.lee;??
  • ??
  • import?javax.xml.ws.Endpoint;??
  • ??
  • import?com.ywx.HelloWorld;??
  • import?com.ywx.impl.HellowWorlds;??
  • ??
  • public?class?ServiceMain?{??
  • ????public?static?void?main(String?args[]){??
  • ????????HelloWorld?hw?=?new?HellowWorlds();??
  • ????????//調用Endpoint的publish方法發布Web?Service??
  • ????????Endpoint.publish("192.168.1.7/vashon",?hw);??
  • ????????System.out.println("Web?Service暴露成功!");??
  • ????}??
  • }??

  • 然后運行瀏覽器,輸入:http://192.168.1.7/vashon?wsdl 查看結果,如果成功生成如下wsdl文檔則表示Web Service暴露成功。

    二、使用CXF開發Web Service客戶端:

    步驟: 1、新建一個客戶端工程 2、調用CXF提供的wsdl2java工具或使用eclipse/myeclipse的new Web Service生成客戶端代碼(這里使用第二種方式): 輸入wsdl鏈接: 點擊next: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 選擇生成客戶端代碼的位置:??? 點擊finish,生成客戶端代碼如下: 3、在客戶端寫測試類測試: [java]?view plaincopy
  • package?com.ywx.test;??
  • ??
  • import?java.rmi.RemoteException;??
  • ??
  • import?com.ywx.HelloWorldProxy;??
  • ??
  • ??
  • public?class?TestService?{??
  • ????public?static?void?main(String?args[]){??
  • ????????HelloWorldProxy?h?=?new?HelloWorldProxy();??
  • ????????try?{??
  • ????????????String?s?=?h.sayHi("yangwenxue");??
  • ????????????System.out.println("調webservice:"+s);??
  • ????????}?catch?(RemoteException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}??
  • ????}??
  • }??

  • 運行結果(傳入一個參數,調用Web Service返回的字符串結果如下): 其調用生成的格式已經有服務端定義好了,看上面貼出來的代碼或者下面的截圖說明: Web Service服務端和客戶端工程結果截圖如下:

    轉載于:https://www.cnblogs.com/AaronBear/p/8532981.html

    總結

    以上是生活随笔為你收集整理的[转载] Web Service工作原理及实例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。