1. 程式人生 > >Webservice工作原理及例項

Webservice工作原理及例項

一、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個部分:介面和實現類: 步驟:                                                   

2、開發一個webservice業務介面,方法使用@WebService修飾。
package com.ywx;

import javax.jws.WebService;

@WebService
public interface HelloWorld {
	String sayHi(String name);
}

3、寫一個這個方法的實現類,方法也需要使用@WebService修飾,並指定其中的引數中,如下指定了所需要實現的介面、並指定服務名稱。
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:
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、在客戶端寫測試類測試:
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服務端和客戶端工程結果截圖如下:                    

相關推薦

WebService 工作原理例項教程

一、WebService到底是什麼? 先來看下標準的定義:Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提

Webservice工作原理例項

一、Web Service基本概念 Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的

Webservice工作原理實例

服務端 標準 httppost tac 函數 特定 測試類 數據 綁定 一、Web Service基本概念 Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求

Semaphore的工作原理例項

        Semaphore是一種在多執行緒環境下使用的設施,該設施負責協調各個執行緒,以保證它們能夠正確、合理的使用公共資源的設施,也是作業系統中用於控制程序同步互斥的量。Semaphore是一種計數訊號量,用於管理一組資源,內部是基於AQS的共享模式。它相當於給執行

Exchanger的工作原理例項

1.實現原理                  Exchanger(交換者)是一個用於執行緒間協作的工具類。Exchanger用於進行執行緒間的資料交換。它提供一個同步點,在這個同步點兩個執行緒可以交換彼此的資料。這兩個執行緒通過exchange方法交換資料, 如果第一個執行

tcp/iP協議族——IP工作原理例項詳解(下)

 IP協議詳解 上一篇文章文章主要介紹了IP服務的特點,IPv4頭部結構IP分片,並用tcpdump抓取資料包,來觀察IP資料報傳送過程中IP的格式,以及分片的過程。本文主要介紹IP路由,IP轉發,重定向和IPv6頭部結構。 IP路由 IP協議的一個核心任務是資料

TCP/IP協議族——IP工作原理例項詳解(上)

 IP協議詳解         本文主要介紹了IP服務特點,頭部結構,IP分片知識,並用tcpdump抓取資料包,來觀察IP資料報傳送過程中IP的格式,以及分片的過程。 IP頭部資訊:IP頭部資訊出現在每個IP資料報中,用於指定IP通訊的源端IP地址、目的端IP地址

JVM 垃圾回收器工作原理使用例項介紹

垃圾收集基礎 Java 語言的一大特點就是可以進行自動垃圾回收處理,而無需開發人員過於關注系統資源,例如記憶體資源的釋放情況。自動垃圾收集雖然大大減輕了開發人員的工作量,但是也增加了軟體系統的負擔。 擁有垃圾收集器可以說是 Java 語言與 C++語言的一項顯著區別。

【常用晶片】ULN2003工作原理中文資料(例項:STM32驅動28BYJ48步進電機)

ULN2003的基本介紹ULN2003的概述ULN2003是高耐壓、大電流複合電晶體陣列,由七個矽NPN 複合電晶體組成。一般採用DIP—16 或SOP—16 塑料封裝。ULN2003的主要特點:ULN2003 的每一對達林頓都串聯一個2.7K 的基極電阻,在5V 的工作電壓

keepalived工作原理裂腦

keepalived   裂腦1. keepalived服務的工作原理(重點)ükeepalived高可用對之間是通過VRRP協議通信的,因此,我們從VRRP協議介紹:üvrrp協議,全稱virtual router redundancy protocol ,中文名名為虛擬路由冗余協議,VRRP

三層交換工作原理配置

三層交換機 mls(多層交換) cef(cisco快速轉發) 配置命令 楊書凡 三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的是加快大型局域網內部的數據交換,所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。三層交換技術就是二層交換技術+三層轉發技術。

JVM GC Collector工作原理優化

情況 .cn 次數 線程 update mode -1 verify 測試 JVM 調優主要是調整GC以及一些執行參數: 目標: 堆不要太大,不然單次GC的時間過長導致服務器無法響應的問題 壓力測試的時候TPS平穩 盡量避免full GC 檢查是否用了並行的垃圾回收器

線程池的工作原理使用示例

影響 cti run padding 返回值 read mina 容器 原理 . 為什麽要使用線程池? 我們現在考慮最簡單的服務器工作模型:服務器每當接收到一個客戶端請求時就創建一個線程為其服務。這種模式理論上可以工作的很好,但實際上會存在一些缺陷,服務器應用程序中經常出

HTTP協議報文、工作原理Java中的HTTP通信技術詳解

tor 報文 buffered mod protoc 禁止 ans 請求報文 客戶端 博客園 首頁 新隨筆 聯系 管理 訂閱

XML定義 用途 工作原理未來

問題 tar 擴展 href tps 結構化數據 tex 慢慢 解析 1.xml的定義及用途: (1)定義:xml(中文名稱:可擴展標記語言)是一種用於標記電子文件使其具有結構性的標記語言。 (2)用途:它可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定

hibernate 工作原理為什麽要用

bsp 什麽 分享 com 為什麽 .com 分享圖片 image inf hibernate 工作原理及為什麽要用

node.js基本工作原理流程

實例 I/O 同步問題 code 本地 https 事情 sans ready 概述 Node.js是什麽 Node 是一個服務器端 JavaScript 解釋器,用於方便地搭建響應速度快、易於擴展的網絡應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量

rsync工作原理 部署

用戶 users 屬性 需要 禁止ip 虛擬賬戶 開始 業務 rsync命令 ---恢復內容開始---   rsync是一款快速的多功能的 可實現全量及增量的本地或遠程的數據同步備份的工具   rsync在遠程之間進行數據傳輸類似於scp的功能 但又優於scp功能 因為我們

appium工作原理啟動方式

原理 啟動app ddr edr 基於 中間 RR 就是 之前 1.appium工作原理 在Android端,appium基於WebDriver協議,利用Bootstrap.jar,最後通過調?用UiAutomator的命令,實現App的自動化測試。 UiAutomator

Nginx工作原理相關介紹

handle 利用 ice fff 高並發 解析器 異常 creat 為什麽 Nginx工作原理及相關介紹一、Nginx工作原理與模塊介紹1、Nginx基本工作原理NGINX以高性能的負載均衡器,緩存,和web服務器聞名。Nginx由內核和模塊組成,其中,內核的設計非常微小