SpringBoot+Cxf开发webservice服务端接口


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工具测一下

 

 



 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM