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