WebService學習教程(一)
- 什麼是webservice
- Webservice入門程式
- Webservice的應用場景
- Webservice的三要素
- WSDL:web服務描述語言
- SOAP:簡單物件訪問協議
- UDDI:目錄服務
- Webservice的四種客戶端呼叫方式
- 生成客戶端呼叫方式
- 客戶端程式設計呼叫方式
- HttpURLConnecton呼叫方式
- Ajax呼叫方式
- 深入開發:用註解修改WSDL內容
- Webservice是使用Http傳送SOAP協議的資料的一種遠端呼叫技術
- Webservice要開發服務端
- Webservice要開發客戶端
- Webservice客戶端開發需要閱讀服務端的使用說明書(WSDL)
- 服務端:釋出一個天氣查詢服務,接收客戶端城市名,返回天氣資料給客戶端
- 客戶端:傳送城市名稱給服務端,接收服務端的返回天氣資料,列印
- JDK:1.7
- Eclipse:mars
- 第一步:建立SEI(Service Endpoint Interface)介面,本質上就是Java介面
- 第二步:建立SEI實現類,在實現類上加入@WebService
- 第三步:釋出服務,Endpoint釋出服務,publish方法,兩個引數:1.服務地址;2.服務實現類
- 第四步:測試服務是否釋出成功,通過閱讀使用說明書,確定客戶端呼叫的介面、方法、引數和返回值存在,證明服務釋出成功。
- WSDL地址:服務地址+”?wsdl”
- WSDL閱讀方式:從下往上
- 第一步:wsimport命令生成客戶端程式碼
- 第二步:根據使用說明書,使用客戶端程式碼呼叫服務端
- 第一步:建立服務檢視,檢視是從service標籤的name屬性獲取
- 第二步:獲取服務實現類,實現類從portType的name屬性獲取
- 第三步:獲取查詢方法,從portType的operation標籤獲取
- 傳送方式採用http的post傳送,http的預設埠是80,防火牆預設不攔截80,所以跨防火牆
- 採用XML格式封裝資料,XML是跨平臺的,所以webservice也可以跨平臺。
- Webservice支援面向物件
- 採用XML格式封裝資料,所以在傳輸過程中,要傳輸額外的標籤,隨著SOAP協議的不斷完善,標籤越來越大,導致webservice效能下降
- 釋出一個服務(對內/對外),不考慮客戶端型別,不考慮效能,建議使用webservice
- 服務端已經確定使用webservice,客戶端不能選擇,必須使用webservice
- 考慮效能時不建議使用webservice
- 同構程式下不建議使用webservice,比如java 用RMI,不需要翻譯成XML的資料
- <service>服務檢視,webservice的服務結點,它包括了服務端點
- <binding>為每個服務端點定義訊息格式和協議細節
- <portType>服務端點,描述 web service可被執行的操作方法,以及相關的訊息,通過binding指向portType
- <message>定義一個操作(方法)的資料引數(可有多個引數)
- <types>定義 web service 使用的全部資料型別
- SOAP即簡單物件訪問協議,他是使用http傳送的XML格式的資料,它可以跨平臺,跨防火牆,SOAP不是webservice的專有協議。
- SOAP=http+xml
- 必需有 Envelope 元素,此元素將整個 XML 文件標識為一條 SOAP 訊息
- 可選的 Header 元素,包含頭部資訊
- 必需有Body 元素,包含所有的呼叫和響應資訊
- 可選的 Fault 元素,提供有關在處理此訊息所發生錯誤的資訊
- 如何釋出SOAP1.2服務端
- Jaxws不支援SOAP1.2服務端釋出,直接釋出會報如下異常
- 如果想釋出SOAP1.2服務端,需要在服務端引入第三方JAR(jaxws-ri-2.2.8)
- 在實現類上加入如下註解
- 相同點:
- 請求傳送方式相同:都是使用POST
- 協議內容相同:都有Envelope和Body標籤
- 不同點:
-
資料格式不同:content-type不同
- SOAP1.1:text/xml;charset=utf-8
- SOAP1.2:application/soap+xml;charset=utf-8
-
名稱空間不同:
- SOAP1.1:http://schemas.xmlsoap.org/soap/envelope/
- SOAP1.2:http://www.w3.org/2003/05/soap-envelope
- 什麼是webservice
- 什麼是遠端呼叫,系統和系統之間的呼叫,從遠端系統當中獲取業務資料。
- Webservice是web服務,他是用http傳輸SOAP協議資料的一種遠端呼叫技術
- Webservice入門程式
-
服務端
- 第一步:建立SEI介面
- 第二步:建立SEI實現類,要在類上加入@WebService
- 第三步:釋出服務,Endpoint的publish方法,2兩個引數:1.服務地址;2.實現類例項
-
第四步:測試服務是否釋出成功,通過閱讀使用說明書,確定服務介面、方法、引數、返回值存在,說明服務釋出成功。
- WSDL地址:服務地址+”?wsdl”
- WSDL閱讀方式,從下往上,servvice->binding->portType->其中有介面、方法、引數和返回值
-
客戶端
- 第一步:使用wsimport生成客戶端程式碼
-
第二步:根據使用說明書,使用客戶端呼叫服務端
- 建立服務檢視,檢視是從service的name屬性獲取
- 獲取服務實現類,從portType的name屬性獲取
- 呼叫查詢方法,從portType下的operation標籤的name屬性獲取
-
優缺點:
- 傳送方式採用http的post,http預設埠是80,所以跨越防火牆
- 資料封裝使用XML格式,XML是跨平臺,所以webservice可以跨平臺
- Webservice支援面向物件開發
- Webservice應用場景
- 軟體整合和複用
-
適用場景:
-
相關推薦
WebService學習教程(一)
Webservice Webservice就是一種遠端呼叫技術,他的作用就是從遠端系統中獲取業務資料 1課程安排 什麼是webservice Webservice入門程式
webservice學習總結(一)-- WebService相關概念介紹
IT strong 資源 fire 求和 log AC service服務 為什麽 一、WebService是什麽? 基於Web的服務:服務器端整出一些資源讓客戶端應用訪問(獲取數據) 一個跨語言、跨平臺的規範(抽象) 多個跨平臺、跨語言的應用間通信整合的方案(實際)
軟體測試學習教程(一)-學習路線圖
寫這些,一些是個人總結與學習,一些是彙總他人經驗與智慧,他山之石可以攻玉,無論如何,知識共享才是最終目的,希望可以為想入軟體測試行業的小白明確學習的方向,也可以幫助工作多年的中高階工程師能查漏補缺,更歡迎能對文章體現的不當之處予以糾正,對不足之處加以補充,為後來者開闢道路,指
pygame學習教程(一)pygame介紹引自官網
網上有很多pygame的教程,我寫這個系列是因為我在學習的過程中響起當年Win32程式設計,自己編寫Form,Message,事件響應。雖然現在已經有很多方法可以幫我們實現這些,如果自己寫一遍會體會很深。 第一篇介紹。 https://www.pygame.org/docs/tut/Pyga
Scala快速學習教程(一)
在學習spark時使用到了scala語言進行程式設計,特編寫此部落格,已儘量精簡的方式對scala語言進行總結學習(在至少會一門程式語言的基礎上看此篇部落格會比較容易)。Scala運行於Java平臺(JVM,Java 虛擬機器)上,併兼容現有的Java程式,Scala
Selenium Python 學習教程(一)
安裝python 開啟 Python官網,找到“Download”, 在其下拉選單中選擇自己的平臺(Windows/Mac),一般的Linux平臺已經自帶的Python,所以不需要安裝,通過開啟“終端” ,輸入“python”命令來驗證。 如果你是第一次接觸Python,一定會迷惑Pyt
RxJava2.x 學習教程(一)基本概念
RxJava是什麼、優點 RxJava (本文所有RxJava全都代指RxJava2)在 GitHub 主頁上的自我介紹是:RxJava – Reactive Extensions for the JVM – a library for composing asynch
Kubernetes | 學習教程 (一)Kubernetes 1.9.0 離線安裝教程
為了讓產品在迎來業務量爆發式增長前完成應對措施,在瀏覽無數的資料後,決定將服務逐漸進行容器化,最終能達到容器叢集的效果。而容器叢集的解決方案中,kubernetes(簡稱k8s)看起來是個可行的方案。我目前的理解是,k8s就是docker容器叢集的一個管理系統,有很多實用功能
gstreamer 學習教程(一) 開發環境搭建
Win7 , vs2013 下 Gstreamer 開發環境搭建兩年前就想學習Gstreamer了,可是一直沒時間,現在才有空,準備把學習過程寫成博文,和初學的童靴一起分享成長過程。寫得不好,還請見諒。 開發環境選
POCO庫學習教程(一) windows POCO庫編譯(64位)
注意:首先需要安裝兩個工具 (1)MySQL (2)OpenSSL(http://slproweb.com/products/Win32OpenSSL.html) 專案需要故使用VS2013進行Poco X64的編譯工作,現做簡單記錄。 編譯環境:VS2013
學習 MeteoInfo二次開發教程(一)
mat 沒有 組件 資源管理 img 教程 layer 添加 bbs 來自氣象家園:http://bbs.06climate.com/forum.php?mod=viewthread&tid=6631 按照教程,沒有太大問題,有些是對c#操作不熟悉導致。 1.添加d
方便大家學習的Node.js教程(一):理解Node.js
圖形 -1 iter pri attribute set run 相對 mage 理解Node.js 為了理解Node.js是如何工作的,首先你需要理解一些使得Javascript適用於服務器端開發的關鍵特性。Javascript是一門簡單而又靈活的語言,這種靈
機器學習實戰教程(一):線性回歸基礎篇(上)
學習 reg style spa 目標 pub auto 機器 輸入 一 什麽是回歸? 回歸的目的是預測數值型的目標值,最直接的辦法是依據輸入,寫入一個目標值的計算公式。 假如你想預測小姐姐男友汽車的功率,可能會這麽計算: Ho
HIVE簡明教程學習筆記(一)——資料庫及表的操作HIVE DDL
1.建立資料庫 create database if not exists aa_db; 2.檢視資料庫定義 describe database aa_db; 3.檢視資料庫列表 show databases; 4.刪除資料庫 drop database if exists testdb casca
大資料學習初級入門教程(一) —— Hadoop 2.x 的安裝、啟動和測試
大資料最基礎的就是資料的儲存和計算,而 Hadoop 就是為儲存和計算而生,是最基礎的大資料處理工具。這篇簡單寫寫 Hadoop 2.x 的安裝,啟動和測試。 一、準備環境 大資料環境的部署,一般都是叢集,機器數量為奇數,這裡以 5 臺機器為例,作業系統為 CentOS 6.9_x64;
NVIDIA CUDA初級教程視訊 - 學習筆記(一)CPU體系架構概述
一句話:CPU大量用於資料搬運而非數值運算,用流水線和分支提高效率 周斌老師:NVIDIA CUDA初級教程視訊第2集 【計算機組成原理】 Q:什麼是CPU? A:是執行指令、處理資料的器件,用於完成基本的邏輯和算術指令,現在增加了複雜功能(記憶體介面、外部裝置介面),包含大量電晶體(上
C# WPF 基礎教程 視訊學習筆記(一)
1.[STAThread()] 代表單執行緒 2.using語句允許程式設計師指定使用資源的物件應當何時釋放資源 3.Border 一般用於裝載面板 Padding 邊框和內部內容中間新增空間 CornerRadius可以使邊框具有一個圓角 4.DockP
Git教程-廖雪峰——學習筆記(一)
按照教程學習了git工具的簡單使用,目前最先進的分散式版本控制系統,無論是從GitHub上學習他人的程式碼,還是儲存自己的程式碼都非常有用。 按照教程練習了一遍程式碼,這裡總結一下: 一.建立版本庫 1.開啟git工具,用下面的指令可以
SQLite學習3_Linux平臺上SQLite資料庫教程(一)——終端使用篇
Linux平臺上SQLite資料庫教程(一)——終端使用篇 SQLite是一款輕型的資料庫,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,可能只需要幾百K的記憶體就夠了。能夠支援Windows/Linux/Unix等等主流的作業系統
UFLDL 教程學習筆記(一)神經網路
UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大學的 Andrew Ng 教授及其團隊
-