700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Springboot 整合CXF框架

Springboot 整合CXF框架

时间:2020-09-09 04:59:51

相关推荐

Springboot 整合CXF框架

Springboot 整合CXF框架

依赖

<!-- cxf --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.2.9</version></dependency>

接口

@WebService(targetNamespace = "http://service.referral.webservice./", name = "Hello")public interface HelloWsService {@WebResult(name = "return", targetNamespace = "")@RequestWrapper(localName = "sayHello", targetNamespace = "http://service.referral.webservice./", className = "sample.ws.service.SayHello")@WebMethod(action = "urn:SayHello")@ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "http://service.referral.webservice./", className = "sample.ws.service.SayHelloResponse")String sayHello(@WebParam(name = "myname", targetNamespace = "") String myname);}

实现类

@javax.jws.WebService(serviceName = "HelloService", portName = "HelloPort", targetNamespace = "http://service.referral.webservice./", endpointInterface = "com.tms.backend.webservice.referral.service.HelloWsService")public class HelloWsServiceImpl implements HelloWsService {public java.lang.String sayHello(java.lang.String myname) {try {return "Hello, Welcome to CXF Spring boot " + myname + "!!!";} catch (java.lang.Exception ex) {ex.printStackTrace();throw new RuntimeException(ex);}}}

CXF配置

1、java配置

@Configurationpublic class WebServiceConfig {@Autowiredprivate Bus bus;@Beanpublic Endpoint endpoint() {EndpointImpl endpoint = new EndpointImpl(bus, new HelloWsServiceImpl());endpoint.publish("/Hello");return endpoint;}}

1、yaml配置

cxf:path: /services

启动项目

调用接口

方法一

/*** 代理类工厂的方式,需要拿到对方的接口地址*/public static void main(String[] args) {try {// 接口地址String address = "http://localhost:8090/services/Hello?wsdl";// 代理工厂JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();// 设置代理地址jaxWsProxyFactoryBean.setAddress(address);// 设置接口类型jaxWsProxyFactoryBean.setServiceClass(HelloWsService.class);// 创建一个代理接口实现HelloWsService us = (HelloWsService) jaxWsProxyFactoryBean.create();// 数据准备String name = "neo";// 调用代理接口的方法调用并返回结果String result = us.sayHello(name);System.out.println("返回结果:" + result);} catch (Exception e) {e.printStackTrace();}}

方法二

public static void main1(String[] args) throws Exception {String address = "http://localhost:8090/services/Hello";String request = "<q0:sayHello xmlns:q0=\"http://service.referral.webservice./\"><myname>Elan</myname></q0:sayHello>";StreamSource source = new StreamSource(new StringReader(request));Service service = Service.create(new URL(address + "?wsdl"),new QName("http://service.referral.webservice./", "HelloService"));Dispatch<Source> disp = service.createDispatch(new QName("http://service.referral.webservice./", "HelloPort"), Source.class,Mode.PAYLOAD);Source result = disp.invoke(source);String resultAsString = StaxUtils.toString(result);System.out.println(resultAsString);}

完结

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。