JDK生成WebService客戶端代碼以及調用方式
TODO服務端搭建
1.WSDL結構
1)<service>:服務視圖,WebService的服務端點
2)<binding>:WebService的通信協(xié)議,還描述WebService的方法輸入、輸出
3)<portType>:描述了WebService可執(zhí)行的操作,通過binding指向portType
4)<message>:描述了服務中發(fā)布的方法,包括參數返回值
5)<type>:定義了WebService中使用的數據類型
2.生成客戶端代碼
通過wsimport命令生成客戶端代碼(windows:建議直接通過cmd進入到項目的src目錄下)
1、遠程地址:wsimport -s . 接口地址?wsdl
2、xml文件:wsimport -s . xml文件地址
3.按照服務說明書編程(查找關鍵點)
1、<wsdl:service name="ModeDateService">:創(chuàng)建ModeDateService的對象
2、實現類
<wsdl:portType name="ModeDateServicePortType">:ModeDateServicePortType:實現類的名稱
3、方法
<wsdl:portType name="ModeDateServicePortType">標簽下的<wsdl:operation name="saveModeData">
當服務調用失敗時候:
<s:any element ref="s:schema"/><s:any>修改為<s:any minOccurs="2" maxOccurs="2"/>

4.生成后便可直接調用,調用方式有兩種
4.1.調用客戶端代碼的以一種方式:使用wsimport 命令,生成客戶端代碼然后再調用
生成后直接創(chuàng)建服務試圖獲取服務實現類調用方法即可
//1、創(chuàng)建服務視圖(視圖是從service標簽的name屬性獲?。?
WeatherServiceImplService weatherServiceImplService = new WeatherServiceImplService();
//2、獲取服務實現類(實現類從portType的name屬性獲?。?
WeaterServiceImpl serviceImpl = weatherServiceImplService.getPort(WeatherServiceImpl.class);
//3、調用方法(從portType的operation標簽中獲?。?
String result = serviceImpl.queryWeather("寧波");
//4、輸出服務單返回的結果
System.out.println(result);
4.2.調用客戶端代碼的第二種方式:使用jdk原生代碼實現調用
1.webservice服務端發(fā)布地址
2.webservice服務發(fā)布的接口類
3.參數和返回值實體類
public class Client{
public static void main(String[] args) throws MalformedURLException{
URL url = new URL("http://localhost:8080/weatherService?wsdl");
// 指定命名空間和服務名稱
QName qName = new QName("http://webservice.qf.com","WeatherServiceImplService");
Service service = Service.create(url,qName);
// 通過getPort方法返回指定接口,以下兩種調用都可以,個人更喜歡使用上邊的
WeatherServiceImpl port = service.getPort(WeatherServiceImpl.class);
//WeatherServiceImpl port = service.getPort(new QName("http://webservice.qf.com","WeatherService"),WeatherServiceImplService.clasee)
// 查詢輸出
String query = port.query("寧波");
System.out.println(query);
}
}
5.WebService客戶端調用方法還有很多,個人使用較多的還是以上兩種,如果有興趣還可以自行百度一下,例如:
5.1.Axis或Axis2調用WebService
5.2.代理工廠的方式
5.3.使用httpClient的方式調用,需要借助第三方工具SoapUI獲取請求xml數據格式的內容,同時請求響應內容是xml格式內容
5.4.cxf類庫 兩種調用方式
總結
到此這篇關于JDK生成WebService客戶端代碼以及調用方式的文章就介紹到這了,更多相關JDK生成WebService客戶端內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何使用axis調用WebService及Java?WebService調用工具類
Axis是一個基于Java的Web服務框架,可以用來調用Web服務接口,下面這篇文章主要給大家介紹了關于如何使用axis調用WebService及Java?WebService調用工具類的相關資料,需要的朋友可以參考下2023-04-04
IDEA2023創(chuàng)建MavenWeb項目并搭建Servlet工程的全過程
Maven提供了大量不同類型的Archetype模板,通過它們可以幫助用戶快速的創(chuàng)建Java項目,這篇文章主要給大家介紹了關于IDEA2023創(chuàng)建MavenWeb項目并搭建Servlet工程的相關資料,需要的朋友可以參考下2023-10-10
IDEA神器一鍵查看Java字節(jié)碼及其他類信息插件
這篇文章主要為大家介紹了一款IDEA神器,可以一鍵查看Java字節(jié)碼及其他類信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-01-01
SpringBoot+Redis+Lua實現接口限流的示例代碼
本文主要介紹了SpringBoot+Redis+Lua實現接口限流的示例代碼,利用AOP攔截請求,通過Redis記錄訪問次數,達到限流效果,具有一定的參考價值,感興趣的可以了解一下2025-09-09
spring-boot中使用spring-boot-devtools的實現代碼
這篇文章主要介紹了spring-boot中使用spring-boot-devtools的實現代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11

