工作中有时候会遇到要写一些webservice接口情况,虽然这个技术目前已经不流行了,但一些传统行业还是在广泛使用的,我主要使用SpringBoot结合CXF框架,可以快速搭建起这种服务,项目是用Maven构建的,先附上依赖的坐标
<!--cxf依赖-->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.4.3</version>
</dependency>
为了避免不必要的问题出现,尽量还是用一样的版本
首先编写一个接口类,定义你需要发布的方法
/**
* WS服务
*/
@WebService
public interface PushService {
/**
* 测试用例
*/
String pushTest(String s);
}
然后编写它的实现类,编写具体的实现的逻辑
/**
* WS服务实现方法
*/
public class PushServiceImpl implements PushService{
/**
* 测试用例
*/
@Override
public String pushTest(String s) {
System.out.println("WS发布服务测试用例" + s);
return "WS服务调用成功!!!! " + s;
}
}
写一个测试的类,在main方法发布测试一下
public class Test {
public static void main(String[] args) {
System.out.println("WS服务开始发布=================");
//服务地址
String address = "http://localhost:8088/pushService";
PushService implementor = new PushServiceImpl();
JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
factoryBean.setAddress(address);
factoryBean.setServiceClass(PushService.class);
factoryBean.setServiceBean(implementor);
factoryBean.create();
System.out.println("WS服务发布成功=================");
}
}
启动main方法查看控制台日志可以看到WS服务已经发布成功了
然后我们打开SOAPUI测试一下,可以看到已经调用成功了