Spring 整合 CXF

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

一:发布服务

web.xml

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/config/applicationContext.xml</param-value>
	</context-param>
		
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>	
	
	<servlet>
		<servlet-name>CXFServlet</servlet-name>
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>CXFServlet</servlet-name>
		<url-pattern>/webService/*</url-pattern>
	</servlet-mapping>
import javax.jws.WebService;

/**
 * webservice定义 
 * 如果不指定targetNamespace 默认为包名称
 * 例如包名为 com.xx.webservice targetNamespace为 http://webservice.xx.com/
 */
@WebService(targetNamespace= "http://sayhello.webservice/")
public interface ISayHelloWebService {

	public String sayHello(String name);
	
}
webservice实现
import javax.jws.WebService;

/**
 * 如果不指定targetNamespace 默认为包名称
 * 例如包名为 com.xx.webservice targetNamespace为 http://webservice.xx.com/
 */
@WebService(targetNamespace= "http://sayhello.webservice/")
public class SayHelloWebServiceImpl implements ISayHelloWebService {

	public String sayHello(String name) {
		return "hello," + name;
	}
}
Spring 配置为文件
<?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"
		xsi:schemaLocation="
			http://www.springframework.org/schema/beans
			http://www.springframework.org/schema/beans/spring-beans-2.5.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"/>
  		
  		<bean id="sayHelloWebService" class="cn.xx.SayHelloWebServiceImpl" />
  		
  		<jaxws:endpoint id="sayHelloWebServiceWS" address="/sayHello">
  			<jaxws:implementor ref="sayHelloWebService" />
  		</jaxws:endpoint>
</beans>

发布服务完成 启动web容器 浏览器查看wsdl文件定义http://localhost:9090/ylnetWebservice/webService/sayHello?wsdl

二:客户端 调用webservice

import javax.jws.WebService;

/**
 * 客户端
 */
@WebService(targetNamespace= "http://sayhello.webservice/")
public interface ISayHelloWebServiceClient {

	public String sayHello(String name);
	
}
public class SayHelloClientWS extends BaseWebService {

	protected ISayHelloWebServiceClient getWebService() {
		return (ISayHelloWebServiceClient) getWebService(ISayHelloWebServiceClient.class);
	}
	
	public String sayHello(String name) {
		return getWebService().sayHello(name);
	}
}
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public abstract class BaseWebService {

	private String host;
	
	private String address;
	
	private JaxWsProxyFactoryBean getJaxWsFactory(Class<?> clazz){
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		System.out.println(getWebServiceAddress());
		factory.setAddress(getWebServiceAddress());
		factory.setServiceClass(clazz);
		return factory;
	}
	
	protected abstract Object getWebService();
	
	/**
	 * TODO 可以考虑在此缓存
	 * <br>------------------------------<br>
	 * @param clazz
	 * @return
	 */
	protected Object getWebService(Class<?>  clazz)  {
		return getJaxWsFactory(clazz).create();
	}
	
	protected String getWebServiceAddress() {
		return getHost() + getAddress();
	}
	
	/**
	 * 获得host
	 * @return the host
	 */
	public String getHost() {
		return host;
	}

	/**
	 * 获得address
	 * @return the address
	 */
	public String getAddress() {
		return address;
	}

	/**
	 * 设置host
	 * @param host the host to set
	 */
	public void setHost(String host) {
		this.host = host;
	}

	/**
	 * 设置address
	 * @param address the address to set
	 */
	public void setAddress(String address) {
		this.address = address;
	}
}
	public static void main(String[] args) {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-client.xml");
		SayHelloClientWS sayHelloClientWS = applicationContext.getBean("sayHelloClientWS", SayHelloClientWS.class);
		System.out.println(sayHelloClientWS.sayHello("张三"));
	}
applicationContext-client.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"
		xsi:schemaLocation="
			http://www.springframework.org/schema/beans
			http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
		
	<bean id="sayHelloClientWS" 	class="cn.soaringstar.ylnet.webservice.SayHelloClientWS" >
		<property name="host" 		value="http://localhost:9090/ylnetWebservice/webService/" />
		<property name="address" 	value="sayHello" />
	</bean>

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

相关推荐

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

乘风晓栈的博客 3928

SoaringRoad博客系统架构--网站的SEO

本文同步发表在我的个人博客上 http://www.soaringroad.com/editor/122 概述 现在使用React,Vue,Angular作为前台框架的网站越来越多,前后台分离开发部署,但是异步加载的网站都有一个问题,那就是SEO不好做。因为搜索引擎的爬虫并不会在后台渲染页面,所以通常爬虫爬取到的,都是没有加载内容的。 解决方案 爬虫不会渲染页面,那么我们就提供一个渲染好的页面给他...

weixin_29444181的博客 332

Spring+CXF+MyBatis整合代码实战

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

weixin_42581846的博客 1052

spring整合CXF

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

qq_41603209的博客 830

spring整合CXF开发webService接口所需的全部jar包

花费了1天整理的jar包,spring的版本较低,但是可以用。

Nangate 45nm FreePDK开源工艺库:从RTL到GDSII全流程实战

在数字IC设计中,标准单元库是连接逻辑综合与物理实现的基石,它定义了每个单元的逻辑功能、时序延迟与物理尺寸。开源EDA工具链的成熟,使得个人也能借助免费工艺套件完整跑通芯片设计流程。Nangate 45nm FreePDK作为一套经典的开源工艺库,凭借结构清晰、配套完善的特性,成为学习数字后端和时序收敛的理想训练场。从综合工具Yosys读取Liberty文件进行逻辑映射,到OpenROAD执行布局布线与时钟树综合,再到使用OpenSTA分析关键路径延迟,这套流程涵盖了数字设计最核心的环节。通过亲手操作,开发

weixin_29168393的博客 273

Spring整合CXF,发布RSETful 风格WebService

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。前端面试题汇总。

2401_85124737的博客 854

MATLAB不能识别已安装的visual studio 2015解决方法

首先,对于MATLAB识别已经安装的vs版本通过命令: mex -setup 下图为本电脑下同时安装的两个visual studio 如果搞清楚MATLAB识别电脑上安装vs的过程,可通过命令: mex -setup -v MATLAB输出识别编译器的整个过程。其中HKLM和HKCU分别是注册表中的HKEY_CURRENT_USER,HKEY_LOCAL_MA…的缩写,MATLAB没有找到对应编译器是由于注册表里没有对应信息(主要是文件路径,C++编译器的路径),或者在注册表里存在该信息,但是找不到

qq_36320710的博客 4895

详解CXF与Spring的整合

详解CXF与Spring的整合

qq_43747119的博客 485

从指令到坐标:深度解析307系列基站定位的AT指令实战与排错

本文深度解析了ML307系列模组基站定位的AT指令实战应用与排错方法。重点剖析了AT+MLBSCFG和AT+MLBSLOC两条核心指令的配置、执行流程及异步响应机制,并针对高德与OneOs两种主流定位服务提供了完整的配置指南。文章结合常见错误码(如126、127)和硬件注意事项,分享了确保定位成功的实战经验与稳健的程序框架。

weixin_29057695的博客 488

对工时评估的思考:当AI颠覆了coding效率

在AI时代,“人日”作为软件工时度量衡已然失效。开发的价值核心正从“编码实现”转向“深度思考”与“精准沟通”——即如何将人类的模糊需求精确地传达给AI。当最有价值的“思想工作”变得最难量化时,传统的项目管理范式随之动摇。我们必须超越对过程的算计,开始探索衡量思想、沟通与业务价值的新标尺。

架构师刘7的博客 1017

【WebService】——CXF整合Spring

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

技术交流 844

【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

分布式 Agent 系统设计:高并发场景下的挑战与解决方案

分布式 Agent 系统由多个分布在不同节点上的智能 Agent 组成,这些 Agent 具有自主决策能力,能够通过通信协作完成复杂任务。每个 Agent 可以看作是一个独立的实体,具备感知环境、处理信息、执行动作的功能,它们相互协作,共同实现系统的整体目标。分布式 Agent 系统在高并发场景下面临着资源调度、通信延迟、状态一致性、容错处理和性能瓶颈等诸多挑战。通过采用动态资源分配、高效通信协议、分布式共识算法、冗余备份等解决方案,可以有效应对这些挑战,提高系统的性能、可靠性和可用性。

shuizhudan223的博客 1292

PCL Alpha Shapes平面点云边界特征提取【2026最新版】

alpha shapes算法用于平面点云的边界特征提取。博客长期更新,本文最近一次更新时间为:2026年4月20日。

点云侠的博客 27万+

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

出现 Tomcat:HTTP状态 404 - 未找到解决方法(图文分析)

出现如下问题 HTTP状态 404 - 未找到 类型 状态报告 消息 请求的资源[/ajax_war_exploded/]不可用 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。 Apache Tomcat/8.5.69 解决方法如下: 网上中的操作有步操作多数都误导 这个部署的环境目录上面是web.xml 下面的目录路径是web即可不用到webapp 保存重启服务器即可使用 其他配置中启动tomcat的操作具体 JRE 1.8 ...

码农研究僧的博客 13万+

spring整合cxf开发webservice

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

zml19910925的博客 681

蓝牙模块HM-10手册

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

spring整合cxf入门案例

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

小浩子的博客 1209

温度PID控制PLC程序

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

CXF整合Spring

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class

sai5201314vicky的专栏 381

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring+CXF+MyBatis整合

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

ShiningRunner的博客 2433

Spring整合CXF发布Web Services

Spring的Web项目搭建不再描述,主要介绍Web项目整合CXF发布Web Services 1.导入CXF需要的jar包 cxf-2.7.2.jar httpasyncclient-4.0-beta3.jar httpclient-4.2.1.jar httpcore-4.2.2.jar httpcore-nio-4.2.2.jar neethi-3.0.2.jar wsd

jclpc的专栏 607

spring与cxf的整合

1.倒入cxf所需要的包(其中包括spring的支持) 2.编写SEI与服务 package cn.itcast.ws.pojo; import java.util.Date; public class WeatherModel { //天气概况 private String detail; //日期 private Date data; //最高温度 pr

heihei 2023
上一篇: Spring HttpInvoker(二)
下一篇: jprofiler安装图解
胸口碎大石_
博客等级 码龄17年 1154粉丝 82原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值