springboot+webservice+传输⾃定义类
⼀.初次搭建报错
采⽤的⽅法,报如下错误
Error creating bean with name 'f.spring.boot.autoconfigure.CxfAutoConfiguration':
通过更改cxf版本号修正(将:3.1.11修改为3.2.5):
<dependency>
<groupId>f</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.2.5</version>
</dependency>
⼆.webservice⽹页⽂档需要显⽰具体参数:
加⼊webservice 接⼝名称:**wsdl=WebserviceTest.wsdl**
localhost:9000/consignment/services/CommonService?wsdl=WebserviceTest.wsdl
三.可序列化操作,处理传送⾃定义对象的问题
此处通过JAXB将⾃定义类和序列化的xml进⾏处理
@XmlRootElement(name ="Customer")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder ={"userId"})
另外在spring cloud的框架中尝试不成功(⼊参为⾃定义类),但是单独新建⼀个springboot⼯程尝试就是OK的。截图如下:
四.WebService客户端传递对象时调⽤⽅法
需要移步:
(1)官⽹推荐了⼏个创建客户端的⽅法,其实并不会专门针对⼊参为对象的⽅式进⾏专门介绍。以下使⽤wsdl2java的⽅式,最为简单:
(2)通过wsdl2java⽣成的代码包之后,直接引⽤该包,并调⽤
service下的⽂件为通过wsdl2java 转化⽽来。
调⽤⽅式(以下两种皆可):
⽅式1
// 1.创建动态客户端
JaxWsDynamicClientFactory dcf = wInstance();如何生成webservice客户端
Client client = ateClient("localhost:8080/webservice/mywebservice?wsdl");
Object[] objects = client.invoke("saveUser", user);
⽅式2
// 接⼝地址
String address ="localhost:8080/webservice/mywebservice?wsdl";
// 代理⼯⼚
JaxWsProxyFactoryBean jaxWsProxyFactoryBean =new JaxWsProxyFactoryBean();
// 设置代理地址
jaxWsProxyFactoryBean.setAddress(address);
// 设置接⼝类型
jaxWsProxyFactoryBean.setServiceClass(UserService.class);
// 创建⼀个代理接⼝实现
UserService webServiceDemoServiceimpl =(UserService) ate();
// 准备数据
String result = webServiceDemoServiceimpl.saveUser(user);
System.out.println("返回结果:"+ result);
总结:以wsdl2java为主要⼯具,官⽹⽂档需要认真阅读

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。