spring-boot整合Cxf的webservice案例

简介: 1.运行环境开发工具:intellij ideaJDK版本:1.8项目管理工具:Maven 4.0.02.Maven Plugin管理 1 2 5 4.0.0 6 7 spring-boot-ws 8 spring-boot-ws 9 1.

1.运行环境

开发工具:intellij idea

JDK版本:1.8

项目管理工具:Maven 4.0.0

2.Maven Plugin管理

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>spring-boot-ws</groupId>
 8     <artifactId>spring-boot-ws</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10 
11     <parent>
12         <groupId>org.springframework.boot</groupId>
13         <artifactId>spring-boot-starter-parent</artifactId>
14         <version>1.5.6.RELEASE</version>
15     </parent>
16 
17     <dependencies>
18         <dependency>
19             <groupId>org.springframework.boot</groupId>
20             <artifactId>spring-boot-starter-web</artifactId>
21         </dependency>
22         <!-- CXF webservice -->
23         <dependency>
24             <groupId>org.apache.cxf</groupId>
25             <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
26             <version>3.1.11</version>
27         </dependency>
28     </dependencies>
29 
30 
31 </project>
View Code

3.WebService方法创建

 1 package com.goku.demo.controller;
 2 
 3 import org.springframework.stereotype.Component;
 4 
 5 import javax.jws.WebMethod;
 6 import javax.jws.WebParam;
 7 import javax.jws.WebService;
 8 
 9 /**
10  * Created by nbfujx on 2017/11/27.
11  */
12 @Component
13 @WebService(serviceName = "ExampleService"
14         ,targetNamespace="http://controller.demo.goku.com/")
15 public class ExampleController {
16 
17     @WebMethod
18     public String echo(@WebParam(name = "para") String para) {
19     return "hello"+para;
20     }
21 }
View Code

4.CxfConfig配置编写

 1 package com.goku.demo.config;
 2 
 3 import com.goku.demo.controller.ExampleController;
 4 import org.apache.cxf.Bus;
 5 import org.apache.cxf.jaxws.EndpointImpl;
 6 import org.springframework.beans.factory.annotation.Autowired;
 7 import org.springframework.context.annotation.Bean;
 8 import org.springframework.context.annotation.Configuration;
 9 
10 import javax.xml.ws.Endpoint;
11 
12 /**
13  * Created by nbfujx on 2017/11/27.
14  */
15 @Configuration
16 public class CxfConfig {
17 
18     @Autowired
19     private Bus bus;
20 
21     @Autowired
22     private ExampleController examplecontroller;
23 
24     @Bean
25     public Endpoint endpoint() {
26         EndpointImpl endpoint = new EndpointImpl(bus,examplecontroller);
27         endpoint.publish("/ExampleService");//接口发布在 /NetbarServices 目录下
28         return endpoint;
29     }
30 
31 }
View Code

5.WsApplication启动类编写

 1 package com.goku.demo;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 import org.springframework.boot.web.servlet.ServletComponentScan;
 6 
 7 /**
 8  * Created by nbfujx on 2017/10/19.
 9  */
10 // Spring Boot 应用的标识
11 @SpringBootApplication
12 @ServletComponentScan
13 public class WsApplication {
14 
15     public static void main(String[] args) {
16         // 程序启动入口
17         // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
18         SpringApplication.run(WsApplication.class,args);
19     }
20 }
View Code

6.Cxf客户端编写

 1 package test.com.goku.demo.client;
 2 
 3 
 4 import org.apache.cxf.endpoint.Client;
 5 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 6 import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
 7 
 8 import com.goku.demo.controller.ExampleController;
 9 
10 /**
11  * Created by nbfujx on 2017/11/27.
12  */
13 public class CxfClient {
14 
15     public static void main(String[] args) {
16         echo();
17     }
18 
19     public static void echo() {
20         // 创建动态客户端
21         JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
22         Client client = dcf.createClient("http://localhost:8080/services/ExampleService?wsdl");
23         Object[] objects = new Object[0];
24         try {
25             objects = client.invoke("echo", "str");
26             System.out.println("echo:" + objects[0]);
27         } catch (java.lang.Exception e) {
28             e.printStackTrace();
29         }
30     }
31 }
View Code

7.查看测试结果

先启动cxf服务端,再进行客户端调阅

8.GITHUB地址

https://github.com/nbfujx/springBoot-learn-demo/tree/master/spring-boot-ws

待续

目录
相关文章
|
3月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
5天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
17 2
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
54 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
18天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
58 2
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
3月前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
3月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
3月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
3月前
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因