日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springboot webservice cxf 客户端调用

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot webservice cxf 客户端调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是烤鴨:

? ?這篇文章分享的是xcf webservice接口調用。如果接口提供方要求是webservice調用的話,可以參考這篇內容。

?

1.? ? pom文件

<dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>3.2.5</version> </dependency> <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http</artifactId><version>3.2.5</version> </dependency>

2.? ? xml報文構造

首先看一下,接口方要求的xml格式。

<?xml version="1.0" encoding="GBK" standalone="yes"?> <ROOT><request_info><PHONE_NO>234</PHONE_NO><ORDER_ID>123</ORDER_ID></request_info> </ROOT>

?

首先構造實體類

RequestRootWebservice.java (xml的ROOT節點) package com.test.test.webservice;import lombok.Data; import javax.xml.bind.annotation.*;@XmlAccessorType(value=XmlAccessType.FIELD) @XmlRootElement(name = "ROOT") @Data public class RequestRootWebservice {private RequestInfo request_info; } RequestInfo.java (xml子節點) package com.test.test.webservice;import lombok.Data;import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType;/*** Created by gmwang on 2018/7/24*/ @Data @XmlRootElement(name = "request_info") @XmlType(propOrder = { "PHONE_NO", "ORDER_ID"}) public class RequestInfo {private String PHONE_NO;private String ORDER_ID; }

?

序列化和反序列化的結果:

3.? ? 請求代碼

public void testSend1() {// 創建動態客戶端JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();Client client = dcf.createClient("http://localhost:8080/services/TestService?wsdl");// 需要密碼的情況需要加上用戶名和密碼 // client.getOutInterceptors().add(new ClientLoginInterceptor("admin","123345"));QName name=new QName("http://service.policyconfirm.apps.gateway.sinosoft.com/","getStudents");try {RequestRootWebservice root = new RequestRootWebservice();RequestInfo requestInfo = new RequestInfo();requestInfo.setORDER_ID("123");requestInfo.setPHONE_NO("234");root.setRequest_info(requestInfo);JAXBContext context = JAXBContext.newInstance(RequestRootWebservice.class);Marshaller marshaller = context.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);marshaller.setProperty(Marshaller.JAXB_ENCODING, "GBK");marshaller.marshal(root, System.out);StringWriter writer = new StringWriter();marshaller.marshal(root, writer); // System.out.println(writer.toString());//反序列化Unmarshaller unmarshaller = context.createUnmarshaller();StringReader reader = new StringReader(writer.toString());RequestRootWebservice stu2 = (RequestRootWebservice) unmarshaller.unmarshal(reader);System.out.println("stu2"+stu2);Object[] objects = client.invoke(name,writer.toString());String res = "";if(objects != null && objects.length != 0){res = objects[0].toString();}System.out.println("返回數據:" + res);} catch (Exception e) {e.getMessage();e.printStackTrace();}}

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的springboot webservice cxf 客户端调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。