大家好,我是烤鸭:

这篇文章分享的是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 客户端调用相关推荐

  1. java cxf 客户端调用_CXF客户端调用N种方式

    方式一: 配置CXF环境变量,用wsdl2java工具自动产生代码.项目结构目录如下: 其中com.yq.webservice下面的所有的java类都是wsdl2java工具自动产生的. JaxWsP ...

  2. CXF客户端报Cannot create a secure XMLInputFactory问题

    cxf客户端调用服务报Cannot create a secure XMLInputFactory 错误 网上普遍的解决方法是: 服务器端缺少了两个jar包  stax2-api-3.1.x.jar ...

  3. Spring集成CXF发布WebService并在客户端调用

    Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...

  4. Springboot 基于CXF构建WebService服务

    前言 最近因为系统需要接入了一个新的支付通道,一般来说都是使用RestApi 来接入,但是本次接入的支付通道为境外支付,使用的WebService,对于WS我们在实际业务中基本上不会用到,所以查阅了一 ...

  5. WebService客户端调用常见5种方式

    之前系统中使用到了webservice进行第三方通信,这里总结一下常见的5种客户端调用方式. 在此之前我们先简单搭建一个webservice服务端项目,发布一个webservice服务.我这里使用sp ...

  6. WebService CXF系列: SpringBoot同一个项目中集成JaxWS和JaxRS

    WebService CXF系列: SpringBoot同一个项目中集成JaxWS和JaxRS 介绍 项目介绍 项目架构 项目介绍 项目集成的原则 SpringBoot集成JaxWS 1. JaxWs ...

  7. HTTP 调用 WebService、CXF 动态调用 WebService

    概述   Web Service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用 ...

  8. SpringBoot集成Axis2,部署webservice接口并调用

    SpringBoot集成Axis2,部署webservice接口并调用 一.省略新建springboot项目过程 1.pom.xml 2.application.yml 3.准备工作做完,编写serv ...

  9. httpclient妙用一 httpclient作为客户端调用soap webservice(转)

    前面有一篇使用HttpClient调用带参数的post接口方法,这里找到一篇使用HttpClient调用Soap协议接口的方式. 原文地址:httpclient妙用一 httpclient作为客户端调 ...

最新文章

  1. 计算机视觉开源库OpenCV形态学morphologyEx函数之开运算和闭运算
  2. 脑洞大开的插画师,每幅都戳到我诡异的笑点
  3. java对象的序列化和反序列化详细解释
  4. ServiceComb java-chassis和CSE java-chassis的区别
  5. Java 1-Java 基础语法
  6. 【路径规划】基于matlab A_star算法机器人走迷宫路径规划【含Matlab源码 1332期】
  7. 从云效1.0到2.0的升级,看技术如何驱动企业提效
  8. Day.js 是一个仅 2kb 大小的轻量级 JavaScript 时间日期处理库,和 Moment.js 的 API 设计保持完全一样,dayjs...
  9. Jenkins非常详细的教程四(钩子程序,定时构建实现)
  10. 黑金Xilinx FPGA学习笔记(一)verilogHDL扫盲文-(1)
  11. 【笔记】用python计算BS模型、隐波的笔记
  12. 桌面计算机图标管理打不开怎么回事,电脑桌面计算机图标打不开怎么办
  13. HMI-51-【多媒体】搞地图 1
  14. FIR窗函数和IIR模拟、数字滤波器的MATLAB实现
  15. 中国大学MOOC-陈越、何钦铭-数据结构-2022春期末考试
  16. [统计学理论基础] 方差 协方差 标准差
  17. 云主机安装redis
  18. Unity URP管线设置 后处理的使用
  19. 工程伦理第九章习题答案
  20. 【PdgCntEdit】书签的页码都是很大的正数,有没有办法把所有页码全部减去一个数??软件自带功能实现书签页码的增加减少增减书签页码

热门文章

  1. 前端学习(2921):vue的事件
  2. [css] 举例说明css有哪些简写的属性和属性值?
  3. 前端学习(2275)初始化react
  4. 前端学习(1867)vue之电商管理系统电商系统之登录退出实现表单的重置
  5. 前端学习(1650):前端系列实战课程之字符串常用方法
  6. 第三十期:BAT 为什么都看上了重庆?
  7. JS实现滚动监听以及滑动到顶部
  8. 常见的数据增强项目和论文介绍
  9. [资源分享] Github上八千Star的深度学习500问教程
  10. python web自动化测试实验报告_Python:web自动化测试