欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java如何調(diào)用wsdl的webservice接口

 更新時(shí)間:2024年05月13日 16:14:40   作者:全子兄  
這篇文章主要介紹了Java如何調(diào)用wsdl的webservice接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java開發(fā),當(dāng)我們獲取到了對(duì)方提供的wsdl地址,然后在網(wǎng)頁(yè)上能夠訪問(wèn)wsdl文檔以后,如何調(diào)用對(duì)方的webservic呢?

一.首先了解下WSDL

WSDL(網(wǎng)絡(luò)服務(wù)描述語(yǔ)言,Web Services Description Language)是一門基于 XML 的語(yǔ)言,用于描述 Web Services 以及如何對(duì)它們進(jìn)行訪問(wèn)。

二.如何生成webService客戶端去調(diào)用服務(wù)端

1.報(bào)存wsdl的xml文件:并將其后綴改為wsdl

2.把保存的 wsdl 文件加進(jìn)項(xiàng)目,創(chuàng)建一個(gè)包,放在下面.

3.使用idea自帶插件,Tools -> WebServices -> Generatte Java Code From Wsdl (這里有坑,idea版本低于2020的 沒(méi)有WebServices) 

 

生成如下圖:

生成是會(huì)加入依賴:

		<dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.1.11</version>
            <scope>compile</scope>
        </dependency>

這里涉及到 Spring整合CXF

三.客戶端參考代碼

public static void main(String[] args) throws Exception {
		WebServiceConfig cfg = WebServiceConfig.getInstance();
		ISysNotifyTodoWebService service = (ISysNotifyTodoWebService) callService(cfg.getAddress(), cfg.getServiceClass());
		// 請(qǐng)?jiān)诖颂幪砑訕I(yè)務(wù)代碼
		NotifyTodoContext context = new NotifyTodoContext();
    	//數(shù)據(jù)格式要參考對(duì)方給的數(shù)據(jù)格式
		context.setSubject("測(cè)試待辦webservice~~~");
		context.setLink("http://news.sina.com.cn/");
		context.setType(2);
		context.setKey("sinaNews");
		context.setModelId("123456789");
		context.setTargets("{\"Id\":\"12fe2de141b7b97b32d1af34204a9f54\"}");
		context.setOptTime("2022-01-25 09:25:09");
		NotifyTodoAppResult result = service.sendTodo(context);
		if (result != null) {
			if (result.getReturnState() != 2)
				System.out.println(result.getMessage());
		}
	}
 
 	/**
	  * 調(diào)用服務(wù),生成客戶端的服務(wù)代理
	  *
	  * @param address WebService的URL
	  * @param serviceClass 服務(wù)接口全名
	  * @return 服務(wù)代理對(duì)象
	  * @throws Exception
	  */
	 public static Object callService(String address, Class serviceClass) throws Exception {
		 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		 // 記錄入站消息
		 factory.getInInterceptors().add(new LoggingInInterceptor());
		 // 記錄出站消息
		 factory.getOutInterceptors().add(new LoggingOutInterceptor());
		 // 添加消息頭驗(yàn)證信息。如果服務(wù)端要求驗(yàn)證用戶密碼,請(qǐng)加入此段代碼
		 // factory.getOutInterceptors().add(new AddSoapHeader());
		 factory.setServiceClass(serviceClass);
		 factory.setAddress(address);
		 // 使用MTOM編碼處理消息。如果需要在消息中傳輸文檔附件等二進(jìn)制內(nèi)容,請(qǐng)加入此段代碼
		 // Map props = new HashMap();
		 // props.put("mtom-enabled", Boolean.TRUE);
		 // factory.setProperties(props);
		 // 創(chuàng)建服務(wù)代理并返回
		 return factory.create();
	 }

不同的環(huán)境(開發(fā)\測(cè)試\生產(chǎn))注意修改 IP 和端口

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中初始化List集合的6種方式詳解

    Java中初始化List集合的6種方式詳解

    這篇文章主要介紹了Java中初始化List集合的6種方式詳解,List 是 Java 開發(fā)中經(jīng)常會(huì)使用的集合,在使用List時(shí)需要進(jìn)行初始化操作,今天我們就來(lái)看一下常用的幾種list集合初始化方式,需要的朋友可以參考下
    2023-10-10
  • 徹底搞懂Java多線程(三)

    徹底搞懂Java多線程(三)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線程和高并發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Spring cloud Gateway簡(jiǎn)介及相關(guān)配置方法

    Spring cloud Gateway簡(jiǎn)介及相關(guān)配置方法

    這篇文章主要介紹了Spring cloud Gateway簡(jiǎn)介及相關(guān)配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • SpringBoot 2.x 整合Lombok的方法示例

    SpringBoot 2.x 整合Lombok的方法示例

    Spring Boot是非常高效的開發(fā)框架,lombok是一套代碼模板解決方案,將極大提升開發(fā)的效率,這篇文章主要介紹了SpringBoot 2.x 整合Lombok的方法示例,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Java HashMap實(shí)現(xiàn)原理分析(一)

    Java HashMap實(shí)現(xiàn)原理分析(一)

    這篇文章主要介紹了Java HashMap實(shí)現(xiàn)原理的分析,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-08-08
  • Java如何判斷一個(gè)字符串是否包含某個(gè)字符串

    Java如何判斷一個(gè)字符串是否包含某個(gè)字符串

    這篇文章主要給大家介紹了關(guān)于Java如何判斷一個(gè)字符串是否包含某個(gè)字符串的相關(guān)資料,在實(shí)際編程中,經(jīng)常需要判斷一個(gè)字符串中是否包含某個(gè)子串,需要的朋友可以參考下
    2023-07-07
  • SpringBoot配置線程池的實(shí)現(xiàn)示例

    SpringBoot配置線程池的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot配置線程池的實(shí)現(xiàn)示例,主要包括在Spring Boot中創(chuàng)建和配置線程池,包括設(shè)置線程池的大小、隊(duì)列容量、線程名稱等參數(shù),感興趣的可以了解一下
    2023-09-09
  • IDEA常用配置之類Tab頁(yè)多行顯示方式

    IDEA常用配置之類Tab頁(yè)多行顯示方式

    這篇文章主要介紹了IDEA常用配置之類Tab頁(yè)多行顯示方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • java中的類型擦除type?erasure示例詳解

    java中的類型擦除type?erasure示例詳解

    泛型是java從JDK?5開始引入的新特性,泛型的引入可以讓我們?cè)诖a編譯的時(shí)候就強(qiáng)制檢查傳入的類型,從而提升了程序的健壯度,泛型可以用在類和接口上,在集合類中非常常見(jiàn),本文將會(huì)講解泛型導(dǎo)致的類型擦除
    2023-09-09
  • Java死鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java死鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    死鎖是兩個(gè)甚至多個(gè)線程被永久阻塞時(shí)的一種運(yùn)行局面,這種局面的生成伴隨著至少兩個(gè)線程和兩個(gè)或者多個(gè)資源。在這里我已寫好一個(gè)簡(jiǎn)單的程序,它將會(huì)引起死鎖方案然后我們就會(huì)明白如何分析它
    2017-06-06

最新評(píng)論