1、在pom.xml添加依賴
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.6</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>3.1.6</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.3.4</version> </dependency>
2、寫一個HelloService接口
1 package com.spring.first.webservice.service; 2 3 import javax.jws.WebMethod; 4 import javax.jws.WebParam; 5 import javax.jws.WebService; 6 7 @WebService(targetNamespace = "http://service.mq.primeton.com") 8 public interface HelloService { 9 @WebMethod 10 public Object sayHello(@WebParam(name="content") String content); 11 }
3、寫一個HelloServiceImpl
package com.spring.first.webservice.service.impl; import com.spring.first.webservice.service.HelloService; import org.springframework.stereotype.Service; import javax.jws.WebService; @Service @WebService(serviceName = "HelloService", targetNamespace = "http://service.mq.primeton.com", endpointInterface = "com.spring.first.webservice.service.HelloService") public class HelloServiceImpl implements HelloService { @Override public Object sayHello(String content){ return content; } }
4、配置CxfConfig發布接口
package com.spring.first.webservice; import com.spring.first.webservice.service.HelloService; import org.apache.cxf.Bus; import org.apache.cxf.bus.spring.SpringBus; import org.apache.cxf.jaxws.EndpointImpl; import org.apache.cxf.transport.servlet.CXFServlet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.xml.ws.Endpoint; @Configuration public class CxfConfig { @Autowired private HelloService helloService; @Autowired private Bus bus; @Bean(name= "cxfServlet") public ServletRegistrationBean dispatcherServlet(){ return new ServletRegistrationBean(new CXFServlet(),"/webservicedemo/*"); } @Bean(name=Bus.DEFAULT_BUS_ID) public SpringBus springBus(){ return new SpringBus(); } /** * 注冊HelloService接口到webservice服務 * @return * 瀏覽器訪問地址 http://localhost:9090/webservicedemo?wsdl 得到客戶端訪問地址 http://localhost:9090/webservicedemo/webservicedemo?wsdl * */ @Bean public Endpoint endpointHelloService(){ EndpointImpl endpoint=new EndpointImpl(bus,helloService); endpoint.publish("/webservicedemo"); return endpoint; } }
5、在瀏覽器輸入地址 http://localhost:9090/webservicedemo?wsdl,得到如圖信息
再在SoapUI工具測一下