webService之Apache CXF

基于Apache CXF的WebService服务端与客户端开发实战 Apache CXF 是当前 Java 领域中最成熟、功能最全面的 WebService 框架之一,广泛应用于企业级服务集成场景。它不仅支持标准的 SOAP/WSDL 协议栈,还提供了对 RESTful 服务、JAX-WS、JAX-RS 等多种编程模型的良好支持。其模块化设计和高度可扩展性使其成为构建高可用、高性能分布式系统的首选工具链。 阅读详情

webService之Apache CXF

标签:webService CXF


一、CXF简介:

    1、Apache CXF是一个开源的webService框架
    2、支持多种协议:支持SOAP1.1,SOAP1.2,RESTFUL HTTP,WS-I BasicProfie,WS-Security,等
    3、CXF大大简化了WebService的创建且与Spring进行无缝集成。

二、CXF的编程思路

    1、编写SEI(服务接口)
    2、编写接口实现类
    3、配置spring配置文件
    4、配置web.xml
    5、启动服务器

三、服务端设计

  1. 服务接口

    /**
     * 天气服务接口
     * @author MOTUI
     *
     */
    @WebService
    public interface WeatherService {
    
        /**
         * 根据城市名称获得天气情况
         * @param cityName
         * @return
         */
        public String getWeather(String cityName);
    }     
  2. 实现类

    /**
     * 服务接口实现类
     * @author MOTUI
     *
     */
    @WebService
    public class WeatherServiceImpl implements WeatherService {
    
        public String getWeather(String cityName) {
            if ("北京".equals(cityName)) {
                return "阴转多云,18~25摄氏度";
            }
            return "其他地区正在完善";
        }
    }
  3. 配置文件(spring 配置文件)
    导入命名空间:

            xmlns:jaxws="http://cxf.apache.org/jaxws"
            xmlns:jaxrs="http://cxf.apache.org/jaxrs"
    
            xsi:schemaLocation="http://cxf.apache.org/jaxws
                                http://cxf.apache.org/schemas/jaxws.xsd
                                http://cxf.apache.org/jaxrs
                                http://cxf.apache.org/schemas/jaxrs.xsd"
    ```xml
    <!-- 配置bean -->         
    <bean id="weatherService" class="com.motui.service.WeatherServiceImpl"/>
    
    <!-- 配置webService -->
    <jaxws:server address="/ws" serviceClass="com.motui.service.WeatherService">
    <jaxws:serviceBean>
        <ref bean="weatherService"/>
    </jaxws:serviceBean>
    </jaxws:server>
    ```
    
  4. web.xml

        <!-- 加载Spring的工厂监听器 -->
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <!-- 指定监听器寻找Spring配置文件所在位置 -->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml</param-value>
      </context-param>
    
      <!-- 配置CXF Servlet -->
      <servlet>
        <servlet-name>cxf</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>cxf</servlet-name>
        <url-pattern>/cxf/*</url-pattern>
      </servlet-mapping>
  5. 启动服务

    部署到Tomcat,启动服务。
    访问路径:http://localhost:port/项目名称/cxf/ws?wsdl进行访问。
    页面显示wsdl说明书及部署正确。
    

四、客户端设计

  1. 生成客户端代码

    使用命令:wsimport -s . -p 包名 wsdl地址
    
  2. 客户端代码(项目为web项目和java项目都可以):
    可以直接调用也可以在客户端业务层调用,此处在业务层调用

    接口代码:
    
    public interface ClientService {
    
    public String queryWeather(String cityName);
    
    }
    实现类代码:(实现类上添加@service注解)
    
    @Service
    public class ClientServiceImpl implements ClientService {
    
        private WeatherService weatherService;
        public void setWeatherService(WeatherService weatherService) {
            this.weatherService = weatherService;
        }
    
        @Override
        public String queryWeather(String cityName) {
    
            String weather = weatherService.getWeather(cityName);
    
            return weather;
        }
    
    }
    测试类代码:
    
    /**
     * 测试客户端
     */
    public class TestClient {
    
        public static void main(String[] args) {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
            //获得ClientService
            ClientService clientService = (ClientService) context.getBean("clientService");
            //调用方法
            String queryWeather = clientService.queryWeather("北京");
            System.out.println(queryWeather);
        }
    
    }

    测试结果:

    阴转多云,18~25摄氏度
    

    五、总结

    基于CXF与Spring的webService开发。CXF框架与spring可以进行无缝连接。
    在使用CXF时,需要导入CXF的jar包,在导入全部jar在开发中可能会遇到如下问题:
    1、配置文件中不自动提示和报红叉问题。
        解决方式:联网就可以解决。
    2、运行过程中报错:prefix wsdp is not bound to a namespace
        由以下四个jar导致,删除即可,不删除也不影响正常运行。
        cxf-services-ws-discovery-api-3.1.4.jar
        cxf-services-ws-discovery-service-3.1.4.jar
        cxf-services-wsn-api-3.1.4.jar
        cxf-services-wsn-core-3.1.4.jar
    
Apache CXF框架的WebService开发与实践 WebService是一种基于Web的应用程序接口(API),它定义了一种松耦合的分布式计算模型。通过SOAP协议发送XML格式的消息,使得在不同平台、不同编程语言上编写的应用能够无缝通信。WebService的主要特点包括跨平台兼容性、语言和平台独立性,以及高度的可集成性。Apache CXF 是一个开源服务框架,用于帮助开发者构建和开发面向服务架构(SOA)和微服务。CXF 支持多种标准协议如 JAX-WS 和 JAX-RS,允许使用 Java 和其他语言创建 Web 服务。 阅读详情

相关推荐

ws-discovery:一个用于进行WS-Discovery的Ruby宝石

ws_discovery 描述 该gem旨在提供搜索与WS-Discovery兼容的目标服务的能力。 它使用 ,因此,如果您还没有使用,那么熟悉它的概念将对您有所帮助。 功能 搜索与WS-Discovery兼容的目标服务。 例子 ↑ WS-发现搜索¶ ↑ WS-Discovery搜索只是将探测发送到多播组,并在给定的时间(或默认为5秒)内侦听响应。 返回的结果取决于您是否在EventMachineReact堆中运行它。 如果没有,它将返回一个响应数组作为WSDiscovery :: Responses。 请查看WSDiscovery#search文档,以获取更多关于此处选项的信息。 require 'ws_discovery' # Search for all devices (do a probe with Types left unspecified) all_devic

使用 Apache CXF 实现 Web Service 详解

1.Web service的概念 什么是WebService呢?从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过We

kangning5118的专栏 547

apache cxf_jar包

java通过cxf实现webservice所需jar包。java通过cxf实现webservice所需jar包。

apache CXF Service 简单使用

cxf介绍 框架官网:cxf.apache.org 支持多种协议: SOAP1.1,...

weixin_30292745的博客 277

告别纯文本RAG:用Dify 1.11.0多模态知识库,5步搭建一个能“读图”的智能客服助手

本文详细介绍了如何利用Dify 1.11.0多模态知识库构建智能视觉客服助手,通过5个步骤实现图片内容理解与专业回复。从准备多模态素材到配置知识库节点,再到设计工作流逻辑和性能优化,帮助开发者快速搭建高效客服系统,显著提升用户体验和问题解决效率。

weixin_30832143的博客 451

集成电路设计学习笔记(二)基于IC617反相器设计之原理图绘制

博主的博客网站 欢迎大家访问! ccbirds.cn ccbirds.github.io 本文主要记录在IC617中原理图的绘制和schematic的使用方法。 新建library 要画设计自己的集成电路,需要建一个自己的库,方便对自己设计文件的管理。 打开library manager,file 下NEW下Library 选择库的保存路径,一般默认即可,并在name中填入自己库的名字。...

ccbirds 7373

Java 前台 cxf 调用 WebService 问题汇总

最近与客户对接接口,客户提供了WebService测试地址,调用过程中出现了一些问题,在此记录下。 1. unexpected element (uri:“http://xxx.xxx.xxx”, local:“arg”). Expected elements are &amp;amp;amp;amp;lt;{}arg&amp;amp;amp;amp;gt; 直接使用axis方式调用WebService,返回异常信息 unexpected element (u...

null 1万+

从“氛围编程“到“智能体工程“:AI编程范式的认知跃迁与工程实践

摘要: 2026年,ClaudeCode负责人鲍里斯·切尔尼提出用“智能体工程”(Agent Engineering)替代流行的“氛围编程”(Vibe Coding),认为后者过于主观,无法体现AI编程的系统化与工程化本质。智能体工程强调记忆系统、工具编排、任务分解、可观测性等核心技术,将AI编程从“玄学辅助”升级为可度量、可规模化的工程学科。本文通过对比术语差异、构建知识体系,并结合代码实例(如带记忆系统的代码生成Agent和可观测性系统),展示了智能体工程的实际应用。行业案例(如ClaudeCode的并

yyq916的博客 1061

WebService之CXF使用

Apache CXF 是一个开源的 WebService 框架,CXF可以用来构建和开发 WebService,这些服务可以支持多种协议,比如:SOAP、POST/HTTP、HTTP ,CXF 大大简化了WebService并且可以天然地和 Spring 进行无缝集成。

qq_35338042的博客 4468

两级运算放大器设计与仿真

运算放大器(简称运放)是许多模拟系统和混合信号系统中的一个完整部分。各种不同复杂程度的运放被用来实现各种功能:从直流偏置的产生到高速放大或滤波。伴随者每一代 CMOS 工艺,由于电源电压和晶体管沟道长度的减小,为运放的设计不断提出复杂的课题。 运算放大器的设计可以分为两个较为独立的步骤,第一步是选择或搭建运放的基本结构,绘出电路结构草图,第二步就要选择直流电流,手工设计管子尺寸,以及设计补偿电路等等,然后在手工计算的基础上,运用模拟电路仿真软件对设计的两级运放进行仿真,并对电路进行后续的调试和修改。....

qq_50968231的博客 11万+

Qt+PCL实战:如何用QVTKOpenGLNativeWidget高效渲染3D点云(附完整代码)

本文深入解析了Qt与PCL结合使用QVTKOpenGLNativeWidget进行高效3D点云渲染的实战技术。通过对比传统QVTKWidget,详细介绍了QVTKOpenGLNativeWidget在渲染效率、内存占用和兼容性方面的显著优势,并提供了完整的代码示例和性能优化策略,助力开发者在工业检测、自动驾驶等领域实现更高效的点云可视化。

keras9composer的博客 687

WebServices CXF开发常见异常及解决方法

======================================================异常1================================================================= 2011-7-14 9:55:15 org.apache.cxf.service.factory.ReflectionServiceFactoryBean...

iteye_16403的博客 1402

人工智能---什么是Transformer?

Transformer是一种强大的神经网络架构,最初由Google的研究人员在论文《Attention is All You Need》中提出,用于自然语言处理任务,特别是在机器翻译方面取得了巨大成功。Transformer的核心思想是完全基于自注意力机制(self-attention mechanism)来实现序列到序列(sequence-to-sequence)的学习。它在自然语言处理(NLP)和其他序列到序列任务中表现出色,逐渐成为该领域的主流模型。近些年也逐渐在自动驾驶领域有所应用。

智能汽车人的博客 3955

springmvc 集成apache cxf 开发webservice 示例

spring mvc 集成apche cxf 开发webservice 示例

J_oo_L的专栏 3930

高通平台 Android T 蓝牙技术全解析:A2DP 与 AVRCP 核心代码路径与交互流程

A2DP 接收端 - 连接流程(AVDTP 打开)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 288

【即插即用模块】Mamba篇 | CVPR 2025 | MaIR:新型Mamba扫描方式+通道混洗注意力,全任务涨点!

MaIR是一种新型图像恢复模型,通过嵌套S形扫描策略(NSS)和序列混洗注意力(SSA)改进传统Mamba方法。NSS采用条纹区域划分和S形扫描路径,既保留图像局部性又维持空间连续性;SSA通过通道洗牌和门控机制增强特征聚合。该模块创新性地融合多路径选择性扫描、深度卷积和注意力机制,在保持O(N)计算复杂度的同时,显著提升超分辨率和去噪等任务的性能表现(PSNR提升0.2-0.5dB)。代码实现包含特征洗牌、组卷积等关键操作,适用于高分辨率视觉任务,可作为即插即用组件替代传统自注意力模块。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1162

Apache CXF生成WebService的客户端

前几天有个WebService 的API要调用,最开始用的是xfire发现有的方法能调通,有的不行。百般折腾后看到有网友说使用这样的方式可以,然后试了一下确实不错,分享给大家。

一只没有脚的鸟 1435

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

cxf调用接口的几种方式_使用Apache CXF调用webservice接口

最近在RestCloud平台中调用webservice时遇到以下问题,总结记录下:RestCloud 企业级API混合集成中台​www.restcloud.cnApache CXF调用webservice接口可以有两种方式实现:一是动态调用webservice即不用生成客户端代码但是要调用复杂的webservice服务比较难实现,特别是调用.net的ws接口比较难二是生成client java客户...

weixin_35029653的博客 2045

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

彻底了解|利用Apache CXF框架开发WebService

前言WebService是为了支持网络的机器间操作交互而设计用来开发分布式的交互操作的应用程序组件,通常被定义为一组模块化的API,他们可以通过网络进行调用,来执行远程系统的请求服务,而...

浅羽技术 707

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Apache CXF实现WebService入门教程(附完整源码)

Apache CXF实现WebService非常简单实用,只需要几步就可以实现一个简单的web service。 首先我们需要新建一个maven项目,在pom中添加依赖和jetty作为测试的web service的web容器。 如下是测试用到的pom文件内容: xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h

Golden_lion的博客 5758

Apache-CXF整合SpringMVC WebService Apache-CXF整合SpringMVC

Apache-CXF整合SpringMVC WebService Apache-CXF整合SpringMVC 一、前言 1、最近公司一个项目,突然需要用到WebService,网上找了下,实现的方式很多,这里记录下Apache-CXF和SpringMVC的整合过程。 2、SpringMVC 部分配置略, CXF单独也可以在web项目中运行。 二、WebService 服务端 代码实现 1、依赖pom <!-- https://mvnrepository.com/artif...

HaHa_Sir的博客 1052

Apache CXF WebService 使用

WebService具体是干什么的我这里就不用说了,这里介绍一下Aapche CXF配制与使用,这里我是采用Tomcat forSpring方式WebService服务跟着Tomcat一同启动,先下载CXF所需的包,放到你的工程的WEB-INF/lib目录下,新建bean.xml,内容如下:    xmlns:xsi="http://www.w3.org/2001/XMLSchema-in

人工智能的专栏 2507

调用webservice_WebService接口调用实战之Apache CXF

Apache CXF 是一个开源的 Web Services 框架。如果需要轻松实现 Web Services 的发布和使用,可以将其作为其中一种解决方案。本次技术:springbootcxf. 等一、下载Apache CXF并配置环境变量下载地址:http://cxf.apache.org/download.html下载并解压到硬盘!配置环境变量:CXF...

weixin_39685674的博客 250

Apache CXF实现WebService

1.Web service的概念          从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。  从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。

用心构筑文章 3840

使用Apache CXF开发REST风格的WebService

使用Apache CXF开发REST风格的WebService REST的概述: REST(表现层状态转化),是一种新的软件架构风格,它以资源为核心,使用http,url,xml以及html等流行协议和标准来完成对资源的操作以及显示。这些操作包括获取,删除,修改,创建和删除资源。 (1)每一个URI代表一种资源 (2)客户端和服务器之间,传递这种资源的某种表现层 (3)客户端通过四个Http动词...

qq_37276382的博客 303

使用 Apache CXF 建立 WebService 总结

转载请注明出处:http://blog.csdn.net/oathevil/article/details/7520732 J2EE中WebService的建立可以使用Axis2,也可以使用Apache CXF,两者的区别与优缺点具体见附档1。 最近花了点时间大概看了一下WebService相关的资料,现就Apache CXF的使用过程作如下总结: 使用者可以遵循以下步骤进行WebSer...

yuanlanjun 316
上一篇: webService
下一篇: springAOP
motui
博客等级 码龄10年 84粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值