springboot发布webservice

简介: springboot发布webservice

1.springboot发布webservice wsdl

1.1版本说明

<cxf.version>3.2.5</cxf.version>

<java.version>1.8</java.version>

<boot.version>2.3.12.RELEASE</boot.version>

1.2主要依赖包

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-web</artifactId>

 </dependency>

 <!--发布webservice-->

 <!-- cxf-spring-boot-starter-jaxrs -->

 <dependency>

  <groupId>org.apache.cxf</groupId>

  <artifactId>cxf-spring-boot-starter-jaxws</artifactId>

  <version>${cxf.version}</version>

</dependency>

1.3接口代码

接口类:

/**

* create at 2022-05-24

*/

@WebService(name = "DataService", targetNamespace = "http://webservice.xxx.com/")//命名空间,一般是接口的包名倒序

public interface DataService {

   //注意 action 属性需加上 不然发布后的wsdl地址中 soapAption会为空,SAP调用会报错

   @WebMethod(action = "http://webservice.service.com/service/SaveDataService")

   public String SaveDataService(

           @WebParam(name="DbType")String DbType,

           @WebParam(name="tableName") String tableName,

           @WebParam(name="keyField")String keyField,

           @WebParam(name = "xmlStr") String xmlStr);

}

接口实现类

/**

* @author

* @date 2022-05-24

**/

@WebService(endpointInterface="com.xxx.webservice.DataService", targetNamespace = "http://webservice.xxx.com/", serviceName = "SaveDataService")

public class DataServiceImpl implements DataService {

 @Override

   public String SaveDataService(String DbName,

                                 String tableName,

                                 String keyField,

                                 String xmlStr) {

              ...code implement here

       return "hello world";

   }

}

服务发布类

/**

* 配置cxf发布webservice类

*/

@Configuration

public class CxfConfig {

   @Autowired

   Bus bus;

   //这里需要注意  由于springmvc 的核心类 为DispatcherServlet

   //此处若不重命名此bean的话 原本的mvc就被覆盖了。可查看配置类:DispatcherServletAutoConfiguration

   //一种方法是修改方法名称 或者指定bean名称

   //这里需要注意 若beanName命名不是 cxfServletRegistration 时,会创建两个CXFServlet的。

   //具体可查看下自动配置类:Declaration org.apache.cxf.spring.boot.autoconfigure.CxfAutoConfiguration

   //也可以不设置此bean 直接通过配置项 cxf.path 来修改访问路径的

   @Bean("cxfServletRegistration")

   public ServletRegistrationBean dispatcherServlet(){

       return new ServletRegistrationBean(new CXFServlet(),"/webservice/*");//发布服务名称

   }

   //注册服务

   @Bean

   public DataService dataService(){

       return new DataServiceImpl();

   }

   @Bean

   public Endpoint endpoint(){

       EndpointImpl endpoint = new EndpointImpl(bus,dataService());

       endpoint.publish("/service");

       return endpoint;

   }

}

1.4 服务发布路径访问

端口我这里默认和服务启动端口一致,浏览器能够访问说明服务发布成功。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UD1x7ewT-1655352838260)(C:/Users/elite/AppData/Roaming/Typora/typora-user-images/image-20220616102715293.png)]

1.5调用的话可以使用soapui

postman调用不是太方便,soapui调用wsdl合适一点。

这里就不在多说了。

相关文章
|
3月前
|
Java 数据处理
【十二】springboot整合WebService
【十二】springboot整合WebService
109 0
|
8天前
|
Java API
SpringBoot WebService 及 注意项
SpringBoot WebService 及 注意项
4 0
|
3月前
|
XML 存储 Java
SpringBoot集成WebService
SpringBoot集成WebService
216 1
|
3月前
|
Java
【十三】springboot整合WebService关于传参数
【十三】springboot整合WebService关于传参数
76 0
|
3月前
|
Java 数据库连接 Apache
SpringBoot整合CXF实现WebService
SpringBoot整合CXF实现WebService
192 0
|
Java 容器
springboot中简单创建webservice服务
不添加配置类也可以在springboot的启动类了里面发布服务,但是那样的话就不是ioc托管的了,在服务里面就不能注入其他IOC容器里面的对象
|
Java Maven
Springboot整合CXF发布WebService
Springboot整合CXF发布WebService
Springboot整合CXF发布WebService
springboot配置webservice服务发布
springboot配置webservice服务发布
354 0
|
Java
SpringBoot + cxf 调用 webService
SpringBoot + cxf 调用 webService
702 0