CXF WebService整合Spring

首先,CXF和spring整合需要准备如下jar包文件:

image

这边我是用Spring的jar包是Spring官方提供的,并没有使用CXF中的Spring的jar文件。

添加这么多文件后,首先在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*:applicationContext-server.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

<servlet>
<servlet-name>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
然后在src目录中,新建一个applicationContext-server.xml文件,文件内容如下:



<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans >
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd"
注意上面的带下划线加粗部分,这个很重要的哦!不能写错或是遗漏了。

添加完这个文件后,还需要在这个文件中导入这么几个文件。文件内容如下:

<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"/>
下面开始写服务器端代码,首先定制服务器端的接口,代码如下:

package com.hoo.service;

import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.hoo.entity.User;
import com.hoo.entity.Users;

/**
* <b>function:</b>定制客户端请求WebService所需要的接口
* @author hoojo
* @createDate 2011-3-18 上午08:22:55
* @file ComplexUserService.java
* @package com.hoo.service
* @project CXFWebService
* @blog http://blog.youkuaiyun.com/IBM_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
@WebService
@SOAPBinding(style = Style.RPC)
public interface IComplexUserService {

public User getUserByName(@WebParam(name = "name") String name);

public void setUser(User user);
}
下面编写WebService的实现类,服务器端实现代码如下:

package com.hoo.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.hoo.entity.User;
import com.hoo.entity.Users;

/**
* <b>function:</b> WebService传递复杂对象,如JavaBean、Array、List、Map等
* @author hoojo
* @createDate 2011-3-18 上午08:22:55
* @file ComplexUserService.java
* @package com.hoo.service
* @project CXFWebService
* @blog http://blog.youkuaiyun.com/IBM_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
@WebService
@SOAPBinding(style = Style.RPC)
@SuppressWarnings("deprecation")
public class ComplexUserService implements IComplexUserService {

public User getUserByName(@WebParam(name = "name") String name) {
User user = new User();
user.setId(new Date().getSeconds());
user.setName(name);
user.setAddress("china");
user.setEmail(name + "@hoo.com");
return user;
}

public void setUser(User user) {
System.out.println("############Server setUser###########");
System.out.println("setUser:" + user);
}
}
注意的是和Spring集成,这里一定要完成接口实现,如果没有接口的话会有错误的。

下面要在applicationContext-server.xml文件中添加如下配置:

<bean id="userServiceBean" class="com.hoo.service.ComplexUserService"/>

<bean id="inMessageInterceptor" class="com.hoo.interceptor.MessageInterceptor">
<constructor-arg value="receive"/>
</bean>

<bean id="outLoggingInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
<!-- 注意下面的address,这里的address的名称就是访问的WebService的name -->
<jaxws:server id="userService" serviceClass="com.hoo.service.IComplexUserService" address="/Users">
<jaxws:serviceBean>
<!-- 要暴露的 bean 的引用 -->
<ref bean="userServiceBean"/>
</jaxws:serviceBean>
<jaxws:inInterceptors>
<ref bean="inMessageInterceptor"/>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<ref bean="outLoggingInterceptor"/>
</jaxws:outInterceptors>
</jaxws:server>
下面启动tomcat服务器后,在WebBrowser中请求:

http://localhost:8080/CXFWebService/Users?wsdl

如果你能看到wsdl的xml文件的内容,就说明你成功了,注意的是上面地址的Users就是上面xml配置中的address的名称,是一一对应的。

下面编写客户端请求的代码,代码如下:

package com.hoo.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.hoo.entity.User;
import com.hoo.service.IComplexUserService;

/**
* <b>function:</b>请求Spring整合CXF的WebService客户端
* @author hoojo
* @createDate 2011-3-28 下午03:20:35
* @file SpringUsersWsClient.java
* @package com.hoo.client
* @project CXFWebService
* @blog http://blog.youkuaiyun.com/IBM_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
public class SpringUsersWsClient {

public static void main(String[] args) {
//调用WebService
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(IComplexUserService.class);
factory.setAddress("http://localhost:8080/CXFWebService/Users");

IComplexUserService service = (IComplexUserService) factory.create();

System.out.println("#############Client getUserByName##############");
User user = service.getUserByName("hoojo");
System.out.println(user);

user.setAddress("China-Guangzhou");
service.setUser(user);
}
}
运行后,可以在控制台中看到

log4j:WARN No appenders could be found for logger (org.apache.cxf.bus.spring.BusApplicationContext).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2011-3-28 18:12:26 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://service.hoo.com/}IComplexUserServiceService from class com.hoo.service.IComplexUserService
#############Client getUserByName##############
27#hoojo#hoojo@hoo.com#china

Tomcat控制台
image
这个server端是通过Spring整合配置的,下面我们将Client端也通过Spring配置完成整合。

首先增加applicationContext-client.xml配置文件,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans >
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd"

<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"/>

<jaxws:client id="userWsClient" serviceClass="com.hoo.service.IComplexUserService"
address="http://localhost:8080/CXFWebService/Users"/>
</beans>
客户端请求代码如下:

package com.hoo.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hoo.entity.User;
import com.hoo.service.IComplexUserService;

/**
* <b>function:</b>请求Spring整合CXF的WebService客户端
* @author hoojo
* @createDate 2011-3-28 下午03:20:35
* @file SpringUsersWsClient.java
* @package com.hoo.client
* @project CXFWebService
* @blog http://blog.youkuaiyun.com/IBM_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
public class SpringUsersWsClient {

public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-client.xml");

IComplexUserService service = ctx.getBean("userWsClient", IComplexUserService.class);

System.out.println("#############Client getUserByName##############");
User user = service.getUserByName("hoojo");
System.out.println(user);

user.setAddress("China-Guangzhou");
service.setUser(user);
}
}
运行后结果如下:

#############Client getUserByName##############
45#hoojo#hoojo@hoo.com#china
############Server setUser###########
setUser:45#hoojo#hoojo@hoo.com#China-Guangzhou
作者:hoojo
出处:http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html
blog:http://blog.youkuaiyun.com/IBM_hoojo
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
WebService之CXF、Spring web整合发布SOAP服务 在上一篇博客 WebService之CXF快速入门(附Demo演示) 演示通过CXF发布SOAP服务,需要手动创建一个服务端供客户端连接。在此篇博客,我们把CXF与Spring进行整合,让Spring负责创建服务端对象。 一、服务端开发 1、创建一个java web项目 2、导入CXF、Spring的jar包到WEB-INF/lib中 首先在WEB-INF文件夹下新建目录lib 复制CXF... 阅读详情

相关推荐

定时器(PWM输出)触发ADC采样(DMA)——STM32CubeMX

已知 Tclk 为 84MHz , 我们需要 Tout 为 200ms 即 200000us , 不妨先让PSC为 839, 带入上述公式可得 ARR = 19999. 这样算出来之后ARR和PSC都在0~65535的范围, 则可以使用这组参数。例如,如果时钟频率为1MHz,并且PSC设置为1000,则实际的定时频率将为1kHz。当重装载值(Period 或 ARR)设置为 500 时,意味着定时器需要计数 500 个时钟周期才会触发中断。例如,如果时钟频率为1MHz,则Tclk为1微秒。

2301_77123899的博客 1万+

【WebService】——CXF整合Spring

cxf框架实现WebService的亮点有两个:一是将生成客户端的命令进行了封装,省去了用jdk开发时复杂的命令输入和繁琐的文件拷贝工作。二是整合spring,spring框架的优点就不用多说了,大大提高了开发的效率和可扩展性。

技术交流 844

GSEA富集分析实战:从数据准备到结果解读的完整R代码指南

本文提供了一份完整的GSEA富集分析实战指南,涵盖从R环境准备、数据质量控制到基因ID转换、参数优化和结果解读的全流程。通过详细的R代码示例和实用技巧,帮助研究人员高效完成基因集富集分析,特别针对生物信息学中常见的GSEA分析痛点提供了专业解决方案。

weixin_29246195的博客 536

spring整合cxf开发webservice

我们开发webservice接口时候,一般都是web工程,之前联调的时候,就和一个IBM的联调过一个OA接口,他们使用的是Spring整合axis  持久层用的hibernate    下面我们来整合下spring与cxf   建立一个web工程 ,引入cxf  lib下面的jar包   配置web.xml文件 webservice_cxf_spring_day01

zml19910925的博客 681

四旋翼黑科技揭秘:如何利用PX4隐藏的角加速度数据提升控制性能

本文深入探讨了如何利用PX4飞控中隐藏的角加速度数据,结合增量非线性动态逆(INDI)控制方法,显著提升四旋翼无人机的控制性能。通过实战教程,指导开发者从数据订阅、INDI原理到代码实现,构建响应更快、鲁棒性更强的控制回路,有效应对突风与快速机动。

lake5的博客 720

MCGS 昆仑通态触摸屏 modbus TCP 数据转发

MCGS触摸屏数据转发modbus TCP数据转发

m0_63451859的博客 2万+

WebService--CXF与Spring的整合

WebService--CXF与Spring的整合前言开始功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 推荐几...

weixin_42196113的博客 203

Win10网络图标消失,网络图标变成灰色,打开网络设置闪退等问题解决

介绍 主要解决如下问题 网络图标消失 常用方法配置中出现的网络图标变成灰色没有办法打开 打开网络和Internet闪退 错误提示`网络发现已关闭。网络计算机和设备不可见。请启动网络和共享中心的网络发现。 连不上网,诊断结果为 依赖服务或组无法启动 这个问题大概率通过重装系统不能解决,请大家谨慎测试之后最后选择重装这个路线。 方法1:这一步一定要做(卸载三方软件) 把360安全卫士,软件管家这些东西都卸载掉。 我的问题一开始就是这个软件引起的,可能他检测到我还给台式机配了无线网卡,然后就把有线网络的一些

呆呆象呆呆的博客 3万+

WebService学习总结(十一)——cxf整合到spring中

项目中一般都是通过spring来进行管理,因此,绝大多数框架最终都将整合的spring中,cxf也不例外。 下面就讲解如何配置cxf,将其整合到spring中。(例子中web项目通过maven来进行管理,建立的mav项目为WebService_CXF) 一、pom.xml文件添加依赖jar包 1)添加spring支持 2)添加cxf支持 配置如下:...

xjanting的博客 458

先进半导体材料与器件Chapter3

Chapter3 异质结双极晶体管(HBT) 作者:毛茏玮 / Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1 GitHub:github.com/saint-000 知乎:https:/...

一个会写代码的烤鸭 5803

自动化测试与AI的结合应用

自动化测试,人工智能,机器学习,深度学习,测试用例生成,缺陷预测,测试优化 1. 背景介绍 在软件开发领域,自动化测试已成为不可或缺的一部分,它可以提高测试效率、降低测试成本,并确保软件质量。然而,传统的自动化测试方法往往依赖于人工编写的测试用例,这不仅耗时费力,而且难以应对复杂软件

AI架构师小马 2247

Spring整合CXF之发布WebService服务

今天我们来讲下如何用Spring来整合CXF,来发布WebService服务; 给下官方文档地址:http://cxf.apache.org/docs/writing-a-service-with-spring.html 根据官方文档。我们把前面的实例用Spring整合CXF来处理下。会简化很多; 首先我们来建一个Maven项目 WebService_CXF 建好项目第一步,我们打开pom...

飞上云端看彩虹 426

抖音 X-Gorgon 加密算法逆向与 Python 爬虫实战(2026 最新版)

抖音(TikTok 国内版)作为日活超 8 亿的超级 App,其反爬体系在国内互联网中属于顶级难度。核心签名参数X-Gorgon和X-Khronos是几乎所有业务接口(视频详情、评论、搜索、用户主页)的“通行证”。没有正确的 Gorgon 签名,服务器直接返回403或。市面上的教程大多停留在2023 年之前的 V4 版本,而抖音在 2025 年底全面升级到了V6 协议,算法结构、加密常数、混淆方式全部重构。

2201_76125261的博客 352

WebService(3)cxf webService与Spring整合

一、cxf webService 非Spring用例 (1)server端 1.引入jar包,pom.xml中配置如下: 4.1.3.RELEASE 3.0.3 org.springframework spring-web ${spring.version} org.springframework spring-web

蜗牛不怕慢的博客 469

jre9下载 jdk9

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

cxf整合Spring实现webservice调用

cxf整合Spring实现webservice server端 pom文件内容 <dependencies> <!-- CXF WS开发 --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.0.1

wsb_2526的博客 2410

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring整合CXF,发布RSETful 风格WebService

文章链接:http://zhangfan822.iteye.com/blog/1617299 http://blog.csdn.net/sd0902/article/details/8604958 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的。关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述了。如果你对Sprin...

lvwenwen 249

CXF WebService 5 整合Spring

首先,CXF和spring整合需要准备如下jar包文件: 这边我是用Spring的jar包是Spring官方提供的,并没有使用CXF中的Spring的jar文件。 添加这么多文件后,首先在web.xml中添加如下配置: listener> listener-class>org.springframework.web.context.ContextLoade

Ryan Z 的技术日志 516

WebService CXF学习(进阶篇3):CXF整合Spring框架

通过前面两节的讲解,相信你对CXF框架开始有一些认识了。在当今项目开发中,Spring框架基上都用到过,那么它怎么与CXF结合呢,这就是我们这一间要讲的内容。好了,闲话少说。     首先,在前面基础上再导入几个spring要用到的几个.jar包:               1

Chen_yu_ting的专栏 1万+

java cxf spring_CXF整合Spring开发WebService

刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下:要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步:1.打开环境变量配置窗口,点击新建,新建%CXF_HOME%变量,值为你下载的cxf所在的目录,我的是D:\tools\apache-cxf-3.1.02.在Path变量中新加一句%CXF_HOME%\lib,注...

weixin_35662417的博客 335

spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务

一.前言 说起web service最近几年restful大行其道,大有取代传统soap web service的趋势,但是一些特有或相对老旧的系统依然使用了传统的soap web service,例如银行、航空公司的机票查询接口等。本博客主要讲解得是spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务 本案例使...

fygkchina的专栏 770

CXF和Spring整合实现WebService服务端、客户端

一 、CXF和Spring整合实现WebService服务端、客户端(已测代码可以成功调用服务) 首先导入CXF3.1.13jar包 下载地址:http://download.csdn.net/download/porsche_gt3rs/10024998 1.服务端代码: SEI接口: @WebService public interface OrderWS { @WebMethod

PORSCHE_GT3RS的博客 1892

WebService(CXF发布WebService服务与Spring整合)(2)

一、相关基础内容 参见:WebService(CXF对外发布WebService服务)(1) 二、与Spring整合 1、Spring配置文件 在src/main/resources目录下新建webService.xml文件,内容如下(注意:这里引入的cxf.xml等文件是存在于cxf-core.jar中的,只要工程引入了cxf等一系列的jar包,这里就会加载到): <beans xm

鱼多多 360

CXF整合spring实现WebService,过程实例

实现web service 大体上需要以下步骤: Web Service编码: @WebService( SEI和SEI的实现类) @WebMethod(SEI中的所有方法) 发布Web Service: Endpoint(终端, 发布webservice) cxf整合spring主要体现在发布的时候由spring的配置文件来配置发布的bean SEI接口 packag...

sky892012的博客 428

Spring整合CXF发布WebService

一、添加Maven依赖 这里使用3.1.8版本的cxf(对应jdk1.7),使用时应注意高版本对应jdk的版本。 dependency> groupId>org.apache.cxfgroupId> artifactId>cxf-coreartifactId> version>${cxf.version}version> dependency> depen

hkhhkb的博客 527

【CXF】- Spring 整合 webservice CXF

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33762130的博客 104
上一篇: IKAnalyzer,mmseg4j
下一篇: WS服务调用
linshow26
博客等级 码龄14年 0粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值