添加依赖:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.2.6</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.2.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.2.6</version>
<scope>compile</scope>
</dependency>
新增配置类:
package com.flow.mongodb.webservice;
import com.flow.mongodb.webservice.impl.WebServiceImpl;
import org.apache.cxf.Bus;
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;
/**
* 测试 webservice 接口
* wcb
*/
@Configuration
public class CxfConfig {
// 引入工具类
@Autowired
private Bus bus;
// 注入调用服务
@Autowired
private WebServiceImpl webService;
@Bean
public ServletRegistrationBean CXFServlet() {
//服务路径
return new ServletRegistrationBean(new CXFServlet(), "/webservice/*");
}
@Bean
public Endpoint endpoint(){
EndpointImpl endpoint = new EndpointImpl(bus, webService);
//发布的服务名称
endpoint.publish("/IWebService");
return endpoint;
}
}
新增接口:webService测试接口
package com.flow.mongodb.webservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
/**
* 功能描述:webService测试接口
* name 为实现类的名称
*/
@WebService(name = "WebServiceImpl",targetNamespace = "http://service.mrxu.com")
public interface IWebService {
@WebMethod
String getDept(@WebParam(name = "jsonStr",targetNamespace = "http://service.mrxu.com") String jsonStr);
}
新增实现类:
package com.flow.mongodb.webservice.impl;
import com.flow.mongodb.domain.StateFlagVo;
import com.flow.mongodb.mapper.MongoDBMapper;
import com.flow.mongodb.webservice.IWebService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
@Slf4j
@Component
//name 为实现类的名称
@javax.jws.WebService(name = "WebServiceImpl",
targetNamespace = "http://service.mrxu.com/")
public class WebServiceImpl implements IWebService {
@Autowired
private MongoDBMapper mongoDBMapper;
@Override
public String getDept(String jsonStr) {
log.info("=========webservice 传入的参数========="+jsonStr);
List<StateFlagVo> listInfo = mongoDBMapper.getList("100");
String params = listInfo.toString();
log.info("=========webservice 返回的参数========="+params);
return params;
}
}
项目启动后访问地址:
本地访问:http://127.0.0.1:[配置文件中的端口号]/配置类中的路径"/webservice/*"/发布的服务名?wsdl
http://127.0.0.1:10069/webservice/IWebService?wsdl
访问效果
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://service.mrxu.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:ns1="http://service.mrxu.com" name="WebServiceImplService" targetNamespace="http://service.mrxu.com/">
<wsdl:import location="http://127.0.0.1:10069/webservice/IWebService?wsdl=WebServiceImpl.wsdl" namespace="http://service.mrxu.com"> </wsdl:import>
<wsdl:binding name="WebServiceImplServiceSoapBinding" type="ns1:WebServiceImpl">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getDept">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="getDept">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getDeptResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WebServiceImplService">
<wsdl:port binding="tns:WebServiceImplServiceSoapBinding" name="WebServiceImplPort">
<soap:address location="http://127.0.0.1:10069/webservice/IWebService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>