Webservice-CXF

掌握使用CXF快速开发webservice服务和生成client端技能 本文主要通过示例详细介绍了如何使用CXF进行webservice服务服务端的开发和服务发布,以及如何通过CXF为已经发布的webservice服务生成客户端代码,并详细演示了通过生成的客户端代码进行服务的调用,希望对有需要的小伙伴们有所帮助! 阅读详情

1.CXF简介    

Apache CXF是一个开源的Service框架,可以用于简化用户的service开发,基于CXF开发的应用可提供SOAP、XML/HTTP、RESTFUL HTTP或CORBA等服务。CXF底层页可以使用不同的传输协议,包括HTTP、JMS或JBI等。

    根据CXF官方的说明,CXF包含以下特性:

  •     支持大量的Web Service标准,包括SOAP、WS-I Basic Profile、WSDL、WS-Addressing、WS-Policy、WS-ReliableMessaging和WS-Security。
  • CXF支持大量的前端(frontend)编程模型。CXF实现了标准的JAX-WS API,它也包括一种被称为简单前端(simple frontend)的模型,这种模型无需annotation支持。CXF支持web service的两种开发模式:①规则(contract)优先的开发模式,即通过编写WSDL来开发web service;②代码优先的开发模式,即通过编写java代码来开发webservice.
    说了这么多,下面来看看如何使用CXF。

2.CXF下载和安装

    下载并安装CXF步骤如下:
    (1)登陆CXF官方站点:http://cxf.apache.org/,下载CXF最新版。笔者下载的为3.0.1版。
    (2)将下载得到的压缩包解压得到apache-cxf-3.0.1文件夹,进入该文件夹可以看到文件夹中包含如下所示的目录结构。
        bin:该目录下保存了CXF提供的一些小工具,这些工具的主要作用是完成根据WSDL代码生成java代码,以及根据WSDL代码生成javascript代码等代码生成任务。
        docs:该目录下有一个api子目录,其中保存了CXF的API文档。
        etc:该目录主要存放了CXF框架的一些杂项。
lib:该目录存放了CXF的核心类库以及编译和运行所依赖的第三方类库。
licenses:该目录下存放CXF以及第三方框架的授权文件。
modules:该目录下存放CXF按模块打包的jar包。
samples:该目录下存放了CXF的大量示例应用。这些应用是学习CXF极好的资料。
license和readme等文档
(3)将解压路径下的bin目录添加到系统的path环境变量,以便操作系统能找到bin目录下的命令,方便以后使用CXF提供的小工具。
(4)为了在项目中使用CXF框架,需要将lib文件夹下的jar包添加到项目中。

3.Web Service注释介绍

webservice注释主要有:
@WebService:定义服务,用在类上
@WebMethod:定义方法,用于方法上
@WebResult:定义返回值,用在方法上
@WebParam:定义参数,用在方法上

4.使用CXF开发web service

    由于是初学,这里先写一个最简单的hello world。
(1)eclipse下创建一个新的java项目CXFTest(不需要创建webservice,简单的web project即可)
(2)把CXF解压缩目录下bin文件夹中的jar包添加到项目中
(3)在src目录下新建一个package包,命名为test,然后新建一个接口HelloWorld.java,源码为:
package test;  
import javax.jws.WebService;  
@WebService  
public interface HelloWorld{  
    public String sayHello(String name);  
}
(4)在test包中创建HelloWorld接口的实现类HelloWorldImpl,代码为:
package test;  
import javax.jws.WebService;  
@WebService  
public class HelloWorldImpl implements HelloWorld{   
    @Override  
    public String sayHello(String name)  
    {         
        System.out.println("sayHello方法被调用");  
        return ("Hello"+name);        
    }  
}
(5)创建主类MainServer,用来发布webservice
package test;
import javax.xml.ws.Endpoint;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class MainServer {
	public static void main(String[] args) {
		// 第一种发布方式:通过CXF提供的JaxWsServerFactoryBean来发布webservice
		JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
		factory.setServiceClass(HelloWorldImpl.class);
		factory.setAddress("http://localhost:8080/HelloWorld");
		Server server = factory.create();
		server.start();
		// 第二种方式,通过JAX-WS提供的Endpoint来发布webservice
		// 首先创建webservice服务提供类的实例
		/*
		 * HelloWorldImpl implementor = new HelloWorldImpl(); String address =
		 * "http://localhost:8080/HelloWorld"; Endpoint.publish(address,
		 * implementor);
		 */
	}
}
执行服务端代码,可以看到eclipse输出如下,说明webservice成功发布
在浏览器输入如下地址http://localhost:8080/HelloWorld?wsdl,可以访问该webservice服务的WSDL

(6)创建调用webservice的客户端代码
package test;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class HelloWorldClient {
	public static void main(String[] args) {
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		factory.setAddress("http://localhost:8090/HelloWorld");
		factory.setServiceClass(HelloWorld.class);
		HelloWorld helloWorld = (HelloWorld) factory.create();
		System.out.println(helloWorld.sayHello("zhuwei"));
	}
}
CXF开发WebService接口及调用示例 一.CXF开发一个WebService接口示例 1.Maven主要依赖 <!-- webservice 接口 --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http&lt... 阅读详情

相关推荐

【WebService】springboot整合cxf实现webService远程调用

一、前言        在做接口对接的时候需要接口以HTTPS和WebService的形式暴露,虽然最近这几年restful非常火爆,但在一些特定的领域或者一些老旧系统中仍然采用WebService的形式来实现远程通信。       上一篇博客讲了WebService实现远程调用,在博文的最后,自己阐述了关于那种客户端调用存在的问题,如大家有疑问,欢迎留言区指正。二、实现       废话上一篇博...

柠檬树 7424

WebService之CXF框架

本文主要包括以下内容 ant工具的使用利用cxf实现webservicecxf与spring整合 ajax访问webservice ant 工具 1、为什么要用到ant这个工具呢? Ant做为一种工具已经广泛被使用,并且历史悠久。 使用ant的内置命令,可以编译java源文件(javac),运行java文件(java),给class文件打包(jar、war、ear), 也可以创建(mkdir)、删除...

lgxzzz的博客 1539

cxf调用webservice

引入jar <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.11</version> </dependency> <dependency><groupId>org.apache.cxf&lt

K的博客 2180

WebService之CXF使用

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

qq_35338042的博客 4468

SpringBoot 集成CXF开发WebService

参考文章传送门:https://www.dexcoder.com/selfly/article/4593 Apache CXF 介绍 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTf...

飞鸟的轨迹 1795

CXF 一个完整的webService(整合客户端和服务端)

CXF 一个完整的webService(整合客户端和服务端),自己开发,自己测试,完全有效,整合集成了客户端和服务端双向的工能。

WebService框架——CXF介绍

1. WebService与CXF简介 1.1WebService WebService是一种跨编程语言和跨操作系统平台的远程调用技术。 跨编程语言和跨操作平台 就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 远程调用 就是一台计算机a上的...

武汉小喽啰 2255

【数字IC设计】Centos 7桌面版 安装Synopsys EDA Tools

简称DC,是Synopsys公司用于做电路综合的核心工具,可以将HDL描述的电路转换为基于工艺库的门级网表。

qiumingT的博客 9797

【WebService框架-CXF】——WebService和CXF

在接下来的几篇博客中将对CXF的基础知识和简单应用进行总结。下面列出了要总结的内容。本篇文章集中介绍CXF的基础知识。 CXF博客总结目录WebService和CXF基础知识 CXF入门实例(编写客户端和服务端) CXF对Map等无法自动转化的类型的处理 CXF添加普通拦截器和自定义拦截器 CXF+Spring+自定义拦截器构建WebService服务端 CXF+Spring+Struts

To Begin,Begin   2403

HDMI接口协议

接口HDMI(High-Definition Multimedia Interface),新一代多媒体接口标准。即高清多媒体接口。它能够同时传输视频和音频,简化了设备的接口和连线;同时提供了更高的数据传输带宽,可以传输无压缩的数字音频及高分辨率视频信号。HDMI 1.0 版本于 2002 年发布,最高数据传输速度为 5Gbps;而2017 年发布的 HDMI 2.1 标准的理论带宽可达 48Gbps。1、能够同时传输视频和音频,简化了设备接口与连线。2、提供了更高的数据传输带宽,

weixin_42581439的博客 2594

Lattice FPGA 开发工具Diamond使用流程总结——工具使用

本文介绍了一般的Diamond开发流程,包括工程创建、文件输入、IP使用、约束、管脚分配、和布线布局等流程

weixin_41895751的博客 2万+

用CXF发布WebService

首先去网上下载CXF的jar包,我下载的是cxf2.7.4的。新建一个Web工程,将CXF的所有jar包全部引入,在web.xml中增加CXFServlet的配置,代码如下: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javae...

风萧萧兮易水寒,壮士一去兮不复还 2601

【AI智能体】Coze 搭建个人旅游规划助手实战详解

本文将详细介绍如何使用Coze平台搭建个人旅游规划助手。首先概述了AI智能体如何简化传统复杂任务的开发流程,然后重点介绍了Coze工作流的作用和核心节点类型(包括大模型、插件、知识库等)。通过实际操作演示,从创建智能体到配置多级工作流,逐步实现旅游规划功能:解析用户输入时间地点、查询必玩景点、获取景点详细信息等。该教程展示了如何利用Coze的可视化编排能力,即使非技术人员也能快速构建专业级AI应用。最终呈现的旅游助手可提供天气查询、行程建议等一站式服务。

Hello, New World! 2113

使用CXF和camel-cxf调用webservice

CXF是什么 Apache CXF 是一个开源的、全功能的WebService框架,它提供了一套工具和API来帮助开发和构建WebService,像 JAX-WS 和 JAX-RS。它也支持许多WebService标准,例如: SOAP WS-Addressing WS-Policy WS-ReliableMessaging WS-SecureConversation W...

刘刚的空间 2081

GMSL2摄像头接入避坑指南:从FMC子卡配置到V4L2调用的完整流程(附Ubuntu20.04实测)

本文详细解析了GMSL2摄像头接入的全流程,从FMC子卡配置到V4L2调用的完整指南。基于XC7Z100平台实测经验,提供了硬件选型、带宽优化、Linux驱动配置及高分辨率采集的实战技巧,帮助开发者规避常见问题,提升系统稳定性与性能。

weixin_33737774的博客 418

想发故障诊断论文?手把手教你用CWRU数据集复现第一个Baseline模型

本文提供了一份基于CWRU轴承数据集的故障诊断Baseline模型实战指南,手把手教你从数据准备到模型构建的全流程。通过详细的Python代码示例和学术级实验设计,帮助初学者快速复现第一个故障诊断模型,为发表高质量论文奠定基础。

weixin_28681255的博客 428

WebService的CXF实现

WebService的CXF实现 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成 。一种跨编程语言和跨操作系统平台的远程调用技术。 XML、SOAP和WSDL就是构成Web Service平台的三大技术。 Web Service采用Http协议来在客户端和服务端之间传输数据。WebService使用XML来封装数据,XML主要的优点在于它是跨平台的。 Web Service通过HTTP协议发送请求和接收结果时,发送的请求内容和

weixin_44773752的博客 1353

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4604

使用cxf发布webservice接口,以及调用webservice接口

一、cxf发布webservice接口 添加maven依赖 <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core</artifactId> <version>3.4.3</version> </dependency> <de

qq_20161461的博客 1万+

【ArcGIS遇上Python】ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换

由于论文的需要,将MODIS NDVI数据进行投影变换和格式转换,具体操作可以参照:《ArcGIS10.8完美实现MODIS NDVI数据格式转换和投影变换》,但是该文章中的做法只能一次性实现一景影像的转换,没法批量,虽然ArcGIS中提供了Batch的方法但是需要挨个添加数据,确定输出路径等等,本文就实现以ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换。先来看投影后的效果: 在实现批量投影转换之前,需要两个投影文件:Sinusoidal.prj和MyAl

智慧空间实验室 3815

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WebService与CXF

标题WebService简介 Webservice也叫XML Web Service,Web服务。可使用开放的xml标准来描述、发布、发现、协调和配置这些应用程序。用于开发分布式的互操作的应用程序。是一种跨编程语言、跨操作系统、跨网络的远程服务器调用技术。 WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用. 我们可以调...

欢迎大家互相交流分享 1678

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WebService-CXF

WebService-CXF 注:如果只想开发一个简单的WebService,蓝色标注的文字可以不看。 红色字体是需要注意的地方。   简介:Apache CXF  ==  Celtix + Xfire, CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持. CXF 既支持 WSDL 优先开发,也支持从 Java 的代码优先开发模式。容易

单眼皮的猫 4733

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

cxf webservice

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

康 1941

Springboot 基于CXF构建WebService服务

前言 最近因为系统需要接入了一个新的支付通道,一般来说都是使用RestApi 来接入,但是本次接入的支付通道为境外支付,使用的WebService,对于WS我们在实际业务中基本上不会用到,所以查阅了一些资料,记录一下自己项目中使用的WS。 WebService概述 什么是WebService Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,

蜀道难,难于上青天。 2158

利用CXF发布webService的小demo

其实webService的发布不仅仅只有xfire,今天,给大家介绍一下用CXF发布一个webService的小demo,CXF也是我做webService用的第一个框架。。。 先将相关的jar引进来,在pom文件中添加       org.apache.cxf       cxf-rt-transports-http       2.7.3             org.

HelloWorld 1万+

用CXF来调用webService

CXF发布服务,有三种形式:根据main方法发布【Java Project项目】;不基于spring方式发布到Web容器中,比如Tomcat容器【web项目】;基于Spring方式发布到Web容器中。【web项目】 1. Java的webService实现本身就是一个很耗性能的实现方案(xml与java对象之间在服务端以及客户端的互转比较消耗性能) 2. 目前java主流的webSer

qq_38763620的博客 514
上一篇: WebService2-AXIS2
下一篇: WebService-CXF_配置文件篇
Flykos
博客等级 码龄12年 14粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值