cxf整合spring练习

Spring整合CXF 一、分布式开发: 在现实的开发环境中,可能一个项目会被部署到不同的区域上,例如银行系统。省,城市都有各自的服务器。 所有的服务器都有可能调用一个业务中心,这样如果单独将业务中心抽取出来,做业务的处理过程,只要中心的业务修改了, 那么其他服务器也会产生变化。 现在的分布式开发,更多情况是将业务中心的操作分步处理,给所有的客户端提供支持。 技术的过渡: -》 -》 ... 阅读详情

一、环境搭建。

(a)最基本的Java环境
JAVA_HOME
(b)CXF_HOME
(c)ANT_HOME

(d)CATALINA_HOME
(e)PATH
(f)

CLASSPATH=.;%CXF_HOME%\lib\cxf-manifest.jar;.\build\classes

二、编写服务端代码

1.新建动态web项目cxf-spring并导入相关jar包

2.配置文件

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>ws_web_server</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 修改配置文件加载路径第二种方式 -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath*:cxf.xml,classpath*:beans.xml</param-value>
  </context-param>  
  
  <!-- 配置cxf -->
  <servlet>
  	<servlet-name>cxf</servlet-name>
  	<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
   <!-- <init-param>
  		<param-name>config-location</param-name>
  		<param-value>classpath:cxf.xml</param-value>
  	</init-param>  --> 
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>cxf</servlet-name>
  	<url-pattern>/service/*</url-pattern>
  </servlet-mapping>
</web-app>

cxf.xml

<?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:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans.xsd
            http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
            http://cxf.apache.org/core http://cxf.apache.org/schemas/core.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" />  -->
	
	<!-- <jaxws:endpoint id="hello" address="/hello" implementor="cn.sp.web.HelloService">
		<jaxws:outInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
		</jaxws:outInterceptors>
		<jaxws:inInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
		</jaxws:inInterceptors>
	</jaxws:endpoint> -->
	<!-- 使用接口发布服务 -->
	<jaxws:server   address="/person"  serviceClass="cn.sp.wsService.PersonWsService">
		<jaxws:serviceBean>
			<bean class="cn.sp.wsService.PersonWsServiceImpl"></bean>
		</jaxws:serviceBean>
		<jaxws:outInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
		</jaxws:outInterceptors>
		<jaxws:inInterceptors>
			<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
		</jaxws:inInterceptors>
	</jaxws:server>
</beans>


beans.xml,就是一个扫描注解的

<?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:p="http://www.springframework.org/schema/p"  
    xmlns:aop="http://www.springframework.org/schema/aop"   
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:jee="http://www.springframework.org/schema/jee"  
    xmlns:tx="http://www.springframework.org/schema/tx"  
    xsi:schemaLocation="    
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd  
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd  
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">    
	<context:component-scan base-package="cn.sp"/>
</beans>

3.项目结构如图

package cn.sp.wsService;

import java.util.List;

import javax.jws.WebService;

import cn.sp.model.Person;
@WebService//注解要打在接口上
public interface PersonWsService {
public void add(Person person);
	
	public List<Person> getAllPerson();
}


package cn.sp.wsService;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.sp.dao.PersonDao;
import cn.sp.model.Person;
@Service
public class PersonWsServiceImpl implements PersonWsService {
	@Autowired
	PersonDao personDao;

	@Override
	public void add(Person person) {
		personDao.add(person);
	}

	@Override
	public List<Person> getAllPerson() {
		return personDao.getAllPerson();
	}

}


就发布了两个方法,一个添加一个查询。

package cn.sp.dao;

import java.util.List;

import cn.sp.model.Person;

public interface PersonDao {
	public void add(Person person);
	
	public List<Person> getAllPerson();
}
package cn.sp.dao;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;

import cn.sp.model.Person;
@Repository
public class PersonDaoImpl implements PersonDao {
	
	List<Person> list = new ArrayList<Person>();
	@Override
	public void add(Person person) {
		list.add(person);
	}

	@Override
	public List<Person> getAllPerson() {
		return list;
	}

}

package cn.sp.model;

public class Person {
	private String name;
	private String gender;
	private String address;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
	
	
}

这里没有弄数据库,就用一个List来模拟的。
最后添加项目并启动tomcat。
打开doc命令窗口使用wsdl2java -d . http://localhost:8080/cxf-spring/service/person?wsdl命令获得Java代码,然后将其导入客户端中。
三、测试
补充一点儿使用jQuery异步调用webService的。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
	$(function(){
		
		$("#mybutton").click(function(){
			//获得文本的值
			var mytext = $("#mytext").val();
			//组装消息体
			var data = '<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">'
					+'<S:Body><ns2:sayBye xmlns:ns2="http://inter.server.web.rl.com/">'
					+'<arg0>'+mytext+'</arg0>'
					+'</ns2:sayBye>'
					+'</S:Body>'
					+'</S:Envelope>';
			$.ajax({
				url:'http://localhost:8080/cxf-web-server/service/bye',
				type:'post',
				dataType:'xml',//返回值的数据类型
				contentType:'text/xml;charset=UTF-8',//指定发送的数据类型
				data:data,//发送的消息体
				success:function(responseText){
					//解析消息体
					var returnObj = $(responseText).find("return");
					alert(returnObj.text());
				},
				error:function(){
					alert('system error');
				}
				
			});
		});
	});
</script>
</head>
<body>
<input type="text" id="mytext">
<input type="button" id="mybutton" value="jquery_invoke_ws">
</body>
</html>





CXF-09: CXF 与 Spring 的整合 之 暴露 Web Service 接口 在传统Spring项目基础上增加 Web Service 的步骤(SSH 已经配置过,SSM 未配过): 1 . 复制 CXF 的 jar 包(最核心的6个), jar 包地址 http://pan.baidu.com/s/1jHJ56BW 注:请选择性复制 (Apache官网上也可以下载); asm-3.3.jar commons-logging-1.1.1.jar cxf-2.4.1.jar neethi-3.0.0.jar wsdl4j-1.6.2.jar 阅读详情

相关推荐

CXF整合Spring发布WebService实例

一、说明: 上一篇简单介绍了CXF以及如何使用CXF来发布一个简单的WebService服务,并且介绍了客户端的调用。 这一篇介绍如何使用CXF与spring在Web项目中来发布WebService服务,CXF版本为3.1.4 ,Spring版本为4.1.7 ,JDK版本 1.7 ,Tomcat 7 二、实例实现过程: 首先略过CXF、以及spring的下载过程。 ①    新建 J

无羁之风的专栏 8111

Apache CXF 实现web Service服务 入门练习

以前工作中也用CXF,但都是用别人现成搭好的环境,这次自己重头搭建一遍环境。过程中也有遇到的问题,也做了简单的整理。 对于CXF是干什么用的,我不想多说,大家都知道这是我们在java编程中webService技术的一种实现工具。我们说说为什么用CXF来实现webService: 1.      Java的webService实现本身就是一个很耗性能的实现方案(xml与java对象之间在

qq_37138087的博客 540

CXF整合spring实例

本文为CXF3.x整合spring4.x 关于CXF的介绍可以自行百度,这里直接上实例代码: 1.新建maven project,在pom中添加 cxf所依赖的jar包,spring,mybatis等其他所依赖的jar包 pom内容如下: &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww...

try_and_do的博客 795

WebService的学习笔记

webservice  web服务 一、复习回顾   1. 内容回顾         2. 四个概念      - soap :简单对象访问协议 http+xml      - Soa  :面向服务的架构,它是一种思想,IBM大力倡导            service 1   、service2  、Service3  , 服务都是面向web的 ,而且是即插即用的

桃欢李笑 484

Spring+CXF+MyBatis整合代码实战

本文还有配套的精品资源,点击获取 简介:本项目提供了一个可直接运行的Spring+CXF+MyBatis整合代码实现,旨在帮助开发者构建高效且灵活的应用系统。本项目涵盖了Spring框架的依赖注入和面向切面编程,CXF框架的Web服务支持,以及MyBatis框架的数据库操作简化。通过深入剖析整合过程,开发者将掌握如何配置Spring、CXF和MyBatis,编写业务逻辑,并...

weixin_42581846的博客 1052

架构决策之消息中间件MQ系列六-Pulsar

一、架构

恰恰虎的博客 7253

spring整合CXF

spring整合CXF 1.如何用Spring来整合CXF,来发布WebService服务 首先我们来建一个Maven项目 WebService_CXF 建好项目第一步,我们打开pom.xml 我们来添加下Spring支持: <!-- 添加Spring支持 --> <dependency> <groupId>org.springframework<...

qq_41603209的博客 830

PID参数自整定实战解析:从继电反馈到智能调节的完整实现

本文深入解析PID参数自整定的实战应用,从继电反馈原理到智能调节算法的完整实现。通过详细讲解振荡波形特征提取、参数计算的工程化改进及工业场景调试技巧,帮助工程师快速掌握PID自整定技术,提升控制系统性能。特别针对嵌入式系统优化和噪声环境下的稳定策略提供了实用解决方案。

weixin_28731223的博客 461

详解CXF与Spring的整合

详解CXF与Spring的整合

qq_43747119的博客 485

从 SOAUTH2 到系统用户,SAP AS ABAP 里配置 OAuth 2.0 Client 的完整落地思路

SAP OAuth 2.0客户端配置的核心在于建立系统级信任关系。在AS ABAP中,每个OAuth 2.0客户端必须关联一个System类型的用户账号(通过SU01创建),并建议采用业务语义明确的命名规范(如ZBTP_PO_APPROVAL_APP)。关键配置包括:客户端认证方式(推荐SSL证书而非共享密钥)、Token生命周期(默认3600秒)、Scope访问范围,以及根据应用场景选择Authorization Code或SAML 2.0 Bearer等授权模式。项目实践中应避免混合配置不同授权类型,而

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 986

AgentScope Java 入门:Spring AI Alibaba 与 AgentScope 的定位与区别

摘要:Spring AI Alibaba是阿里基于Spring AI开发的本地化AI应用框架,旨在服务Java开发者。它提供模型接入、函数调用、RAG等功能,并与阿里云基础设施深度集成。同时,阿里开源了多智能体框架AgentScope,其Java版(AgentScope-Java)专注于Agentic设计理念。两者将协同发展:Spring AI Alibaba侧重Spring生态集成,AgentScope-Java强化智能体能力。未来计划包括支持AgentScope、升级Admin平台,以及推进Server

SmartSi 1531

apache-cxf简单使用——CXF整合Spring、CXF整合SpringBoot

CXF CXF是一个开源的WebService框架。Apache CXF = Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来

cybxh的博客 2529

【论文翻译】YOLO26: KEY ARCHITECTURAL ENHANCEMENTS AND PERFORMANCE BENCHMARKING FOR REAL-TIME OBJECT DETEC

本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其在实时边缘目标检测领域的关键架构改进与性能基准测试结果。YOLO26于2025年9月发布,是YOLO系列中最新、最先进的模型,专为在边缘设备和低功耗设备上实现高效能、高精度和部署就绪性而设计。论文依次详细介绍了YOLO26的架构创新,包括移除分布焦点损失(DFL)、采用端到端无非极大值抑制(NMS)推理、集成渐进式损失(ProgLoss)和小目标感知标签分配(STAL),以及引入MuSGD优化器以实现稳定收敛。

Limiiiing的博客 1682

Spring+CXF+MyBatis整合

其实最麻烦的事情就是解决jar包之间的各种冲突,这里介绍一下我在搭建的时候遇到的一些问题和解决方法。 1.Spring和MyBatis的整合 需要的jar包 如果需要用DBCP连接的话需要导入 commons-dbcp-1.2.1.jar和commons-pool-1.3.jar,这两个jar包很常见,如果没有可以百度mvn去下载。 这里整合好了建议先单元测试,免得后期遇到错误定位的

ShiningRunner的博客 2433

Android 9.0 系统framework关于忘记开机锁屏密码进不去系统桌面清除锁屏密码问题的解决

在9.0的系统rom定制化开发中,在一些产品中带锁屏密码的功能中,系统默认是滑动解锁,但是客户会设置锁屏密码,在某些时候会 忘掉锁屏密码,导致需要进入恢复出厂设置然后才能进入系统桌面,这样就导致系统的保存的资料都丢失了,所以需要要求提供接口 在下拉状态栏中或者系统服务中在忘记锁屏密码后不恢复出厂设置的情况下,可以清除锁屏密码,接下来就来实现功能

安卓兼职framework和app工程师的博客 615

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度

LRM loss应用到能够大幅提升pose遮挡物性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1715

【WebService】——CXF整合Spring

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

技术交流 844

【零基础入门unity游戏开发——unity通用篇12】导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 760

【Java EE 学习 81】【CXF框架】【CXF整合Spring】

一、CXF简介   CXF是Apache公司下的项目,CXF=Celtix+Xfire;它支持soap1.1、soap1.2,而且能够和spring进行快速无缝整合。   另外jax-ws是Sun公司发布的一套开发WebService服务的标准。早期的标准如jax-rpc已经很少使用,而cxf就是在新标准jax-ws下开发出来的WebService,jax-ws也内置到了jdk1.6...

390

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring boot 整合CXF webservice遇到的一些问题及解决,

在spring boot整合CXF开发是遇到的一些问题 以及整合方式 整合过程 Spring boot 整合CXF开发web service Spring Boot & Apache CXF 开发具有多Endpoint的 WebService 网上资料引入cxf-spring-boot-starter-jaxws依赖即可 <depend...

hawako的博客 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

cxf、spring和maven整合

一.Java WebService框架介绍 在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,这是Java6发布所提供的对Web Service服务的一种实现。)前面几项都为开源项目,而其中又以axis2与cxf所最为常用,Axis与XFire已随着技术不断的

qq_32930145的博客 1211

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

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

Chen_yu_ting的专栏 1万+

spring整合cxf入门案例

spring是j2ee最重要的容器框架,cxf封装了webservice,使webservice的使用变的更加轻松,是解决异构系统交互问题的首选。spring整合cxf的demo分为如下几个步骤: 1).新建web项目,建包分层 2).引进spring管理各个类 3).使用junit测试spring 4).引进cxf,建cxf的service层,提供对外服务下面开始具体的整合流程: 开发环

小浩子的博客 1209

CXF整合spring

CXF整合springmaven依赖接口服务类和实现类spring.xmlweb.xml生成客户端代码测试 maven依赖 spring-web-4.1.9.RELEASE(jdk8)配合cxf2.7.18(jdk7)使用 spring-web-4.2及以上 依赖的spring-aop的类有改变,会启动失败 程序可以在jdk7的环境跑起来 <properties> <mav...

【轰炸机】的博客 276

spring整合cxf开发webservice

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

zml19910925的博客 681
上一篇: webService【二】
下一篇: 使用jsoup爬取网站图片
2YSP
博客等级 码龄10年 12粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值