Springboot整合CXF发布WebService

简介: Springboot整合CXF发布WebService

前言

最近项目里用到WebService,之前用过,后来好久没有接触过,都忘得差不多了,再加上,以前没有写东西的癖好,所以当听到用WebService事,当场懵逼,然后赶紧找资料补救下,但是网上的资料怎么讲呢?完全不能用。。。后来在网上东凑西凑,然后请教了一下别人才搞出来的。废话不多说,我们来一起看看,怎么成功的部署一个WebService服务吧。

引入maven依赖

<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-spring-boot-starter-jaxws -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.2.6</version>
</dependency>

测试实体代码

@Data
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class User implements Serializable {

    Long id;

    String name;

    String phone;

}

接口代码

@WebService(targetNamespace = "cxf")
public interface CxfService {

    /**
     * 获取用户信息
     * @param id
     * @return
     */
    @WebMethod
    User getUser(@WebParam(name = "id") String id);
}

接口实现代码

@Service
@WebService(targetNamespace = "cxf")
public class CxfServiceImpl implements CxfService {

    @Override
    public User getUser(String id) {
        User user = new User();
        if ("1".equals(id)) {
            user.setId(1L);
            user.setName("yaoZhu");
            user.setPhone("18110981995");
            return user;
        }
        user.setId(2L);
        user.setName("luWang");
        user.setPhone("18110981995");
        return user;
    }
}

WebService发布配置代码

@Configuration
public class CxfConfig {

    @Autowired
    private CxfService cxfService;

    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus(){
        return new SpringBus();
    }

    /**
     * AX-WS站点服务
     * @return
     */
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), cxfService);
        endpoint.publish("/visual");
        return endpoint;
    }
}

application.yml配置文件

cxf:
  path: /services

差不多代码写完了,那就开始测试吧!
访问路径:http://localhost:8080/services

640.png

访问路径:http://localhost:8080/services/visual?wsdl

640-1.png
这就结束了,整个项目算是大致完成了。
项目代码:https://github.com/zywaiting/springboot-cxf

相关文章
|
4月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
1月前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
4月前
|
关系型数据库 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
|
4月前
|
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.
|
4月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
4月前
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
|
4月前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
4月前
|
存储 安全 网络安全
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
|
4月前
|
存储 Linux 网络安全
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
|
4月前
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)