热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ApacheCXF+SpringMVC整合发布WebService

https:www.jianshu.comp527d3ba6ad14 一、概述webservice其实是个类似文档的东西,保证不同平台应用之间可以相互操作,之前都是使用java拓展

https://www.jianshu.com/p/527d3ba6ad14

 

一、概述

webservice其实是个类似文档的东西,保证不同平台应用之间可以相互操作,之前都是使用java拓展包进行ws发布,生成一个代理jar进行调用,这次试试springmvc+cxf,不过这个还是soap方式的,restful方式的需要研究一下jersy再放出来。

二、实例

1.pom文件中引入cxf

 >
            >org.apache.cxf>
            >cxf-rt-frontend-jaxws>
            >2.6.0>
        >
        >
            >org.apache.cxf>
            >cxf-rt-transports-http>
            >2.6.0>
        >      

2.webservice 接口 及实现类

package com.web.cxf.service;

import javax.jws.WebService;

@WebService
public interface CXFWebService {

    public String hello(String text);
    
}
package com.web.cxf.service.impl;

import com.web.cxf.service.CXFWebService;

import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

@WebService(endpointInterface = "com.web.cxf.service.CXFWebService",
        targetNamespace = "http://service.cxf.web.com/",
        serviceName = "CXFWebService")
public class CXFWebServiceImpl implements CXFWebService{

    public String hello(@WebParam String text) {
        return "Hello " + text;
    }
}

3.配置applicationContext-cxf.xml


xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:amq="http://activemq.apache.org/schema/core"
       xmlns:jms="http://www.springframework.org/schema/jms"
       xmlns:mvc="http://www.alibaba.com/schema/stat"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://activemq.apache.org/schema/core
        http://activemq.apache.org/schema/core/activemq-core-5.7.0.xsd
        http://www.alibaba.com/schema/stat http://www.alibaba.com/schema/stat.xsd
        http://www.springframework.org/schema/jms
        http://www.springframework.org/schema/jms/spring-jms-4.1.xsd
        http://cxf.apache.org/jaxws
        http://cxf.apache.org/schemas/jaxws.xsd">


    <context:annotation-config />

    id="test" class="com.web.cxf.service.impl.CXFWebServiceImpl" />

    
    <jaxws:endpoint id="testCXF" implementor="#test" address="/testCXF" />

>

4.添加xml到web入口


  >
    >contextConfigLocation>
    >
      classpath:config/applicationContext.xml,
      classpath:config/applicationContext-cxf.xml
    >
  >

5.启动项目查看http://localhost:8080/cxf/testCXF?wsdl

 
image.png

 

6.客户端调用

package com.web.cxf.client;


import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

import javax.xml.namespace.QName;

public class CXFWebServiceClient {

    public static void main(String[] args) {
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://localhost:8080/cxf/testCXF?wsdl");
        Object[] objects;
        //使用qname 解决该命名空间下找不到方法的问题
//        //QName qname;
//        try {
//            qname = new QName("http://service.cxf.web.com/","hello");
//            objects = client.invoke(qname,"AnyFast");
//            System.out.println(objects[0].toString());
//        }catch (Exception e){
//            e.printStackTrace();
//        }

        try {
            objects = client.invoke("hello","AnyFast");
            System.out.println(objects[0].toString());
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}

查看控制台


 
image.png

-end-



作者:榆次丶笑笑生
链接:https://www.jianshu.com/p/527d3ba6ad14
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

推荐阅读
  • 本文介绍了如何在Spring框架中配置和使用定时任务,包括初始化配置和动态启动定时器的方法。通过示例代码展示了如何利用Spring的TaskScheduler接口来创建和管理定时任务。 ... [详细]
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • Spring Boot 初学者指南(第一部分)
    本文介绍了Spring Boot框架的基础知识,包括其设计理念、主要优势以及如何简化传统的J2EE开发流程。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 深入解析Nacos服务自动注册机制
    本文将探讨Nacos服务自动注册的具体实现方法,特别是如何通过Spring事件机制完成服务注册。通过对Nacos源码的详细分析,帮助读者理解其背后的原理。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • Windows 系统中 Flutter 与 IntelliJ IDEA 的环境配置指南
    本指南详细介绍了如何在 Windows 操作系统上设置 Flutter 开发环境,并集成至 IntelliJ IDEA 中,适合初学者及专业人士参考。 ... [详细]
  • 深入解析线程池的工作原理与实际应用
    本文详细探讨了线程池的核心概念、工作原理及其在实际开发中的应用,包括不同类型的线程池创建方式及其适用场景。 ... [详细]
  • 本文介绍了在Linux系统中如何使用不同的命令和工具来查看和检查端口状态,包括有权限和无权限情况下的操作方法。 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 本文探讨了如何在 Spring MVC 框架下,通过自定义注解和拦截器机制来实现细粒度的权限管理功能。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
author-avatar
傅笑寒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有