Web Service 教程
一、webservice介紹
1.使用場景
- 不同的移動客戶端訪問
- 需要訪問第三方的專案
2.訪問第三方應用的方式
ISO的七層模型 : 物理層、資料鏈路層、網路層、傳輸層、表示層、會話層、應用層
- Socket訪問 : Socket屬於傳輸層,它是對Tcp/ip協議的實現,包含TCP/UDP,它是所有通訊協議
的基礎,Http協議需要Socket支援,以Socket作為基礎
Socket通訊特點:
1. 開啟埠,該通訊是 長連線的通訊 ,很容易被防火牆攔截,可以通過心跳機制
來實現 ,開發難度片段
2. 傳輸的資料一般是字串 ,可讀性不強
lj|16|1|60|up
3. socket埠不便於推廣
http:17.23.23.2:2345 www.jd.com www.360buy.com
4. 效能相對於其他的通訊協議是最優的
- Http協議訪問 :屬於應用層的協議,對Socket進行了封裝
1. 跨平臺
2. 傳資料不夠友好 :
get請求: http://127.0.0.1:8888?username=lj&pwd=1234
3. 對第三方應用提供的服務,希望對外暴露服務介面
問題:
1. 資料封裝不夠友好 :可以用xml封裝資料
2. 希望給第三方應用提供web方式的服務 (http + xml) = web Service
- Webservice
1.webService介紹
2.webservice的規則
- xml
- soap :(simple object access 協議) :簡單物件訪問協議
- wsdl : webservice描述語言 ,它也是xml實現的
3.webservice的優點
4.webservice專業名稱
1. xml
2. wsdl
3. soap
二、呼叫第三方的WS服務
1.體驗webservice www.webxml.com.cn
2.準備客戶端,呼叫第三方的webservice服務,讓本專案有手機查號的功能
- 一般訪問方式 HttpClient
1. Http-GET
2. Http-Post
3. Soap (http+xml)
問題:1. 如何解析結果
2. 如何傳遞物件引數
- 推薦的訪問方式
在jdk 1.6 版本以後 ,通過jax-ws 包提供對webservice的支援
- 該方式通過註解的方式來宣告webservice
- 通過 jdk EndPoint.publish()釋出webserive服務
早期的版本 : jax-rpc (remote produce call)
webservice 納入 w3c規範,其他的平臺都支援該規範 :JEE\Php\.NET
都支援wsimport 方式 : 對遠端的webservice生成本地代理,再通過本地代理
來訪問webservice
- wsimport 命令的位置:
C:\Program Files\Java\jdk1.7.0_04\bin
- 要求:
1. jdk的 版本要在 jdk 1.6.21及以上
2. 作業系統安裝的jdk版本 與 MyEclispe 及 預設指定的版本要一致
- wsimport使用:
記得設定jdk\bin 環境變數 指定path
語法 wsimport [opations] <wsdl_uri>
- wsdl_uri:wsdl 的統一資源識別符號
- d :指定要輸出的檔案的位置
- s :表示要解析java的原始碼 ,預設解析出的是class位元組碼
- p : 指定輸出的包名
三、自定義及釋出一個webservice服務
- 宣告 某個業務服務為webservice服務
通過@webservice 註解來宣告
- 釋出webservice服務
Endpoint.publish()釋出
- 通過wsimport生成本地代理來訪問自己釋出的webservice
wsimport
四、webservice傳輸實體物件
五、練習:
1. 呼叫教師機的ws服務
步驟:
1. 系統jdk環境與myeclipse jdk 環境一致 ,1.6.021以上
2. 知道服務端的WDSL路徑
http://192.168.114.10:8888/ws/phoneService?WSDL
3. 命令列 wsimport -s ./ -p cn.itcast.ws.d http://192.168.114.10:8888/ws/phoneService?WSDL
4. 匯入通過wsimport 解析的java類,再編寫一個main測試
MoblieOsInfoService ws=new MoblieOsInfoService();
MoblieOsInfo phoneServicePort = ws.getMoblieOsInfoPort()
PhoneOs phone=phoneServicePort.getMobileOsInfo("android");
2. 建立自己的ws服務併發布、呼叫
步驟: 1.宣告webservice服務 (@webService)2. 釋出webservice(EndPoint.publish) 3. 客戶端訪問(wsimport)
1. 建立一個要通過webservice對外發布的java bean : PhoneService
2. 在java 的入口main方法 通過EndPoint 釋出一個服務端點
String address1="http://192.168.19.10:8888/ws/phoneService";
Endpoint.publish(address1, new PhoneService());
System.out.println("adrress1的WSDL地址"+address1+"?WSDL");
六、WSDL檔案介紹 :webservice服務說明
七、通過註解配置修改wsdl檔案, 讓它具有更好的可讀性
需求:
1. 想改方法的輸入引數名、返回引數名
2. 想改服務名,方法名
3. 對該業務類的某些方法不想對外發布
- 預設只有public 修飾的方法會以webservice的形式對外發布
而 private 受保護的,預設的,都不會發布
- 某些public 方法也不想對外發布
實現:註解配置修改wsdl檔案
重點:
1. webservice 的作用、規則、優點
2. 專業名詞
wsdl 、 soap 、 xml
3. wsimport 生成本地代理
4. 通過JEE方式宣告與釋出webservice
- 宣告 :@webservice
- 釋出 :EndPoint
5. WSDL檔案描述
6. 通過修改註解,配置wsdl檔案,增強可讀性
相關文章
- Spring Web Service教程SpringWeb
- 教你入門Web ServiceWeb
- Android中的Web ServiceAndroidWeb
- Java:Web Service初入門JavaWeb
- 如何使用ABSL程式碼呼叫Web serviceWeb
- Istio service mesh示例教程彙總
- More web function requests go online concurrently, and web service deployment is faster and more economical!WebFunctionGoAST
- vivo web service:億萬級規模web服務引擎架構Web架構
- Service Worker (Web)推送不完全實踐Web
- Web Scraper教程Web
- SAP CRM如何建立支援Web Service的WORD模板Web
- SAP CRM如何建立支援Web Service的PDF模板Web
- 使用soapUI消費SAP Cloud for Customer的web serviceUICloudWeb
- Web service,XSD及WSDL的一些使用Web
- 如何使用FastReport.Service.dll建立Web服務ASTWeb
- SpringBoot入門教程(十七)@Service、@Controller、@Repository、@ComponentSpring BootController
- Web Worker 使用教程Web
- 使用nodejs消費SAP Cloud for Customer上的Web serviceNodeJSCloudWeb
- 如何在SAP CRM裡建立和消費Web serviceWeb
- [譯] Service workers:Progressive Web Apps 背後的小英雄WebAPP
- Python教程WEB安全篇PythonWeb
- Difference between Microsoft Dynamics 365 WEB API, Organization Service and Organization Data ServicROSWebAPI
- web基礎教程:隨筆Web
- JSON Web Token 入門教程JSONWeb
- 如何處理SAP CRM Web Service錯誤 - Virtual Interface Method XXXX not supportedWeb
- Liferay Portal Json Web Service 反序列化漏洞(CVE-2020-7961)JSONWeb
- Web教程:7個CSS核心概念WebCSS
- Web Components 入門例項教程Web
- golang web框架——gin使用教程(一)GolangWeb框架
- 關於 Service Worker 和 Web 應用對應關係的討論Web
- 如何處理消費SAP ABAP Web Service時遇到的Unauthorized錯誤WebZed
- 漸進式web應用開發---service worker 原理及介紹(一)Web
- Azure Service Bus(三)在 .NET Core Web 應用程式傳送ServiceBus QueueWeb
- Service
- WEB PC 管理端打包詳細教程Web
- web前端開發教程-while迴圈Web前端While
- web前端教程之JavaScript的作用域Web前端JavaScript
- Python Flask Web教程001:Flask簡介PythonFlaskWeb
- 最詳細的 SAP ABAP Web Service 建立和消費步驟講解Web