WebService笔记(4)-使用Apache CXF框架发布和调用web服务

dubbo 支持的9种协议 阅读详情

  Apache CXF = Celtix + Xfire 支持多种协议: SOAP1.1,1.2 XML/HTTP CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构,早期语言使用的WS。C,c++,C#) 并可以与Spring进行快速无缝的整合 灵活的部署:可以运行在Tomcat,Jboss,Jetty(内置),IBMWS,BeaWL上面。可到Apache官网进行下载。

 创建一个名为crm_service的web项目,把项目作为web服务发布到网络中,具体的配置过程如下:

  1、导入cxf的lib目录下的jar包

  2、在项目中提供CustomerService接口及其实现类,注意因为等一下我们需要用到web服务的接口,所有要在接口上提供@WebService注解,表明这是一个web服务

@WebService
public interface CustomerService {
	public List<Customer> findAll();
}

 

@Transactional
public class CustomerServiceImpl implements CustomerService {
	private JdbcTemplate jdbcTemplate;
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	
	public List<Customer> findAll() {
		String sql = "select * from t_customer";
		List<Customer> list = jdbcTemplate.query(sql, new RowMapper<Customer>(){
			public Customer mapRow(ResultSet rs, int arg1) throws SQLException {
				int id = rs.getInt("id");//根据字段名称从结果集中获取对应的值
				String name = rs.getString("name");
				String station = rs.getString("station");
				String telephone = rs.getString("telephone");
				String address = rs.getString("address");
				String decidedzone_id = rs.getString("decidedzone_id");
				return new Customer(id, name, station, telephone, address, decidedzone_id);
			}
		});
		return list;
	}

3、在src目录下创建一个名为cxf.xml的配置文件,用来配置spring框架的内容和web服务的内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:soap="http://cxf.apache.org/bindings/soap"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
					http://www.springframework.org/schema/beans/spring-beans.xsd
					http://cxf.apache.org/bindings/soap 
					http://cxf.apache.org/schemas/configuration/soap.xsd
					http://cxf.apache.org/jaxws 
					http://cxf.apache.org/schemas/jaxws.xsd
					http://www.springframework.org/schema/context
						http://www.springframework.org/schema/context/spring-context.xsd
						http://www.springframework.org/schema/aop
						http://www.springframework.org/schema/aop/spring-aop.xsd
						http://www.springframework.org/schema/tx 
						http://www.springframework.org/schema/tx/spring-tx.xsd
					">
	<!-- 引入CXF Bean定义如下,早期的版本中使用 -->
	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
	
	<!-- 配置数据源 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql:///crm_service"/>
		<property name="username" value="root"/>
		<property name="password" value="123"/>
	</bean>
	
	<!-- 事务管理器 -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	
	<!-- 支持事务注解 -->
	<tx:annotation-driven transaction-manager="txManager"/>
	
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	
	<bean id="customerService" class="com.iteason.crm.service.CustomerServiceImpl">
		<property name="jdbcTemplate" ref="jdbcTemplate"/>
	</bean>
	
	<!-- 注册服务 -->
	<jaxws:server id="myService" address="/customer">
		<jaxws:serviceBean>
			<ref bean="customerService"/>
		</jaxws:serviceBean>
	</jaxws:server>
</beans>

4、在web.xml中配置spring框架随项目的启动而加载配置文件cxf.xml,并指定web服务的映射路径

  
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:cxf.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  
  <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>/service/*</url-pattern>
  </servlet-mapping>
  

5、将该web服务用tomcat启动,并且在浏览器中输入http://localhost:8080/crm_service/service/customer?wsdl,看是否显示说明书,有则成功发布web服务

 

6、命令行中使用wsimport -s . http://localhost:8080/crm_service/service/customer?wsdl,删去所有的类和class,只留下一个服务的接口,即CustomerService接口

 

7、在bos项目中,导入cxf的jar包(maven项目直接配置依赖)

 

8、在bos项目的applicationContext.xml中配置注册crm客户端代理对象

<!-- 注册crm客户端代理对象 -->
	<jaxws:client id="crmClient" 
		serviceClass="com.iteason.crm.service.CustomerService" 
		address="http://192.168.1.180:8080/crm_service/service/customer"/>

9、这样就把CustomerService这个接口给配置好了,在web层可以正常使用了

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 阅读详情

相关推荐

JAVA 用 Apache CXF 调用 .NET 服务端 WebService 代码

JAVA 用 Apache CXF 调用 .NET 服务端 WebService 代码 整个JAVA工程的压缩,导入到myeclipse可直接运行,如果只想浏览下,请访问:http://blog.youkuaiyun.com/wqmain/article/details/8216331

使用 Apache CXF 实现 Web Service 详解

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

洪文聊架构 2万+

通过cxf发布webservice需要的一些jar

通过cxf发布webservice需要的一些jar

java soapbinding,带有Spring MVC的Apache CXF客户端-BindingInfo不是SOAPBindingInfo

I am working on a spring MVC project, from which I need to access a webservice(client mode)My web service client is a different maven project which is working fine from its JUnit test cases.When i add...

weixin_33924688的博客 348

[WeChatMsg]导出csv格式微信聊天记录的手把手教程

手把手教大家如何导出自己的聊天记录得到csv文件,即使是电脑小白也可以轻松学会o(* ̄▽ ̄*)ブ

weixin_51094633的博客 1万+

树上柑橘检测实战:自制数据集与YOLO训练全流程复盘

目标检测模型的性能上限往往由训练数据决定,尤其在农业视觉这样的复杂场景中,公开数据集与真实环境的差异常导致模型漏检、误检频发。高质量的标注数据是模型泛化的基础,从采集、清洗到统一标注规范,每一步都直接影响最终效果。对于检测任务而言,VOC与YOLO两种主流标注格式的转换是工程落地的常见环节,理解坐标归一化原理并做好校验,能有效避免训练事故。在模型训练阶段,合理划分数据集、谨慎选择数据增强策略,并结合切片推理解决小目标漏检,是果园场景下提升精度的关键。这套基于2511张果树图像的单类别检测流程,不仅支撑了柑橘

weixin_29057163的博客 232

Apache CXF 架构指南

本文版权归Stephen Wang所有。可以任意复制、转载,但请注明出处。  本文旨在介绍CXF架构,以便对CXF有一个快速的理解。        一、架构目标和约束       Apache CXF 服务框架旨在构建服务所必须的基础组件。目标有许多,其中包括   下几方面:       1. 可嵌入式       2. 高性能       3. 易配置       4.

stphn的专栏 1812

OpenCV透视变换实战:5分钟搞定歪斜证件照矫正(附完整代码)

本文详细介绍了如何使用OpenCV的透视变换技术快速矫正歪斜证件照,包含完整的Python代码实现。通过特征检测、坐标计算和矩阵变换三个核心步骤,5分钟内即可将手机拍摄的歪斜图像自动矫正为专业级证件照,大幅提升图像处理效率。

weixin_29094979的博客 483

apache的cxf框架发布与调用WebService

1.服务端    1.1    创建web工程    1.2    引入jar包    1.3    在web.xml中配置cxfServlet,并引入cxf配置文件            &lt;servlet&gt;          &lt;servlet-name&gt;cxf&lt;/servlet-name&gt;          &lt;servlet-class&gt;org...

m0_37805289的博客 230

linux中的sendmail发送邮件

linux下的sendmail发送邮件

无痕的博客 6435

15、运行语音识别应用:从Mac到微控制器的部署指南

本文详细介绍了如何在Mac上运行语音识别应用,并将其部署到Arduino Nano 33 BLE Sense和SparkFun Edge等微控制器设备上的完整流程。内容涵盖应用构建、设备特定的音频与输出实现、部署步骤、常见问题解决方案及进一步优化建议。通过本指南,开发者可快速实现基于TensorFlow Lite的嵌入式语音识别系统,并根据需求进行自定义修改与功能扩展。

l3m4n的博客 59

使用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万+

【深度学习新浪潮】深度学习特别是大模型在图像配准方面的研发进展

深度学习,尤其是大模型的出现,彻底改变了图像配准的技术范式——从“手工设计特征+几何约束”走向“数据驱动+通用特征学习”。当前,大模型配准已在医学影像、遥感、工业检测等领域实现商业化落地,解决了传统方法难以应对的跨模态、少样本、复杂形变等问题。但大模型配准仍面临推理效率、可解释性、数据隐私等挑战,未来的研发核心将是“精度与效率的平衡”“泛化能力的提升”“场景化适配的简化”。对于开发者而言,从简化版大模型配准代码入手,逐步理解预训练+微调的核心逻辑,是衔接前沿技术的有效路径。

专注:太空算力、AI infra、异构调度、大模型成本工程 428

cxf+spring发布webservice接口及接口的调用

http://blog.youkuaiyun.com/cuihuaming198809/article/details/8243361 一、CXF介绍         Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了

u013305082的专栏 2万+

Ego Planner规划算法(下)——Ego Planner程序框架

本系列文章用于学习记录Ego-Planner规划算法的相关内容,本系列文章是在在Fast Planner规划算法系列文章的基础上,展开对Ego Planner的相关介绍,主要包括Ego Planner算法流程和程序框架两部分,主要学习资料是深蓝学院的移动机器人运动规划课程

慕羽★的博客 7262

uniapp(全端兼容) - 最新详细实现支付键盘功能组件,从底部弹出数字键盘输入支付密码进行付款交互效果,自定义支付密码键盘仿微信、支付宝支付键盘,1~9密码数字键盘,电商支付(详细示例代码复制运行

uniapp,微信小程序,自定义数字键盘,输入支付密码的键盘组件,uniapp小程序如何实现从底部弹出输入支付密码自定义键盘功能,uniapp小程序密码支付键盘组件插件,自定义数字键盘输入页面,怎么封装底部弹窗自定义数字键盘用于输入支付密码,uniapp小程序仿类似电商支付密码输入模态框,uniapp微信小程序平台实现自定义支付密码键盘,uniapp 密码支付,数字键盘,安全键盘,交易键盘,交易密码,交易密码输入框,uniapp自定义支付键盘: uniapp自定义支付键盘,uniapp小程序端实现键盘输入支

✅ 精选推荐文章 2907

Apache CXF WebService 框架

WebService、JAX-WS、JAX-RS、Apache-CXF

hzz19943305823的博客 1792

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

webService总结(三)——使用CXF + Spring发布webService

近些年来,Spring一直很火,许多框架都能跟Spring完美集成,CXF也不例外。下面,我就介绍一下如何使用CXF + Spring发布webService。我们还是使用前两篇博客使用的实例。 服务端: 目录结构: 这里需要的所有Spring的包,CXF的lib目录下都有。 IHelloWorldServer代码: package com.test.server;

梦想起飞的地方,必须用心去经营 3968

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WebService CXF调用方式《三》

问题?WebService CXF调用方式《三》,CXF工作原理和调用方式 一、CXF是什么? Apache CXF是一个开源的,全功能的,容易使用的Web服务框架。CXF是两个项目的结合:由IONA技术公司(现在是Progress的一部分)开发的Celtix和由Codehaus主持的团队开发的XFire,合并是由人们在在Apache软件基金会共同完成的。CXF的名字来源于"Celti

Mr_li13的博客 1万+

Springboot 基于CXF构建WebService服务

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

蜀道难,难于上青天。 2158

使用 Apache CXF 建立 WebService 总结

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

oathevil的专栏 8239

WebService框架——CXF介绍

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

武汉小喽啰 2256

基于Spring Boot应用Apache CXF发布Web Services服务

记录:298 场景:使用Spring Boot应用Apache CXF发布Web Services服务,实现跨系统之间交互接口。

zhangbeizhen18的博客 1910

五、通过CXF框架发布和调用WebService的web服务

1、用jdk自带的webservice不能发布web的服务,也就是不能通过tomcat等服务器发布服务,利用一个webservice框架,也就是CXF可以实现,cxf框架是apache的开源框架,下载页面如下:   2、下载好后,对cxf进行解压,解压后的目录如下:   有时,为了利用cxf框架带的命令(如wsdl2java),还要对cxf进行配置,我在学习的过程中并没有用到,所以并没...

赫家旺的博客 205

springboot整合apache-cxf构建WebService服务

Apache CXF是一个开源的Services框架,CXF帮助您利用Frontend编程 API 来构建和开发Services,像JAX-WS、JAX-RS。这些Services可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP或者CORBA,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者JBI,CXF大大简化了 Services 的创建,同时它可以天然地和...

奔跑的菜鸡 2273

在ssm中发布Apache CXF WebService

作用:两个异构系统,需要共享数据。 需求:我们要给客户提供合同追踪。在出口报运中增加一个WebService,用户可以通过它的系统来访问这个服务,展现出口报运单,主要可以浏览用户的订单状态(走到哪个流程),查看出口报运单。   开发步骤:将现有的Service改造成WebService 1)  将CXF整合到项目中,加入jar包。依赖jar。 org.apache.cxf

cfp008的博客 3184
上一篇: WebService笔记(3)-使用jdk发布自己的Web服务
下一篇: 使用easyui的可编辑数据表格(editable datagrid)
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值