<div class="iteye-blog-content-contain" style="font-size: 14px">
进来接到webservice相关项目,本人一直从事后台底层开发,初接项目一头雾水,网上搜索之后发现大部分cxf与spring整合都是2.X的老版 本,与我本人需求出入不小,后经我与同事共同研究并获得专业指导后终于搞定,现将流程整理如下,希望能给大家带来方便。
服务端
1.首先是在项目中导入jar包:
spring包很常用在这里不多说,cxf用到的的jar包有:
cxf-core-3.0.3.jar
neethi-3.0.3.jar
woodstox-core-asl-4.4.1.jar
wsdl4j-1.6.3.jar
xmlschema-core-2.1.0.jar
asm-3.3.1.jar
cxf-rt-bindings-soap-3.0.3.jar
cxf-rt-databinding-jaxb-3.0.3.jar
cxf-rt-frontend-jaxws-3.0.3.jar
cxf-rt-frontend-simple-3.0.3.jar
cxf-rt-transports-http-3.0.3.jar
cxf-rt-wsdl-3.0.3.jar
stax2-api-3.1.4.jar
(这些jar包都是我个人总结的,如有多余还请大家指出)
2.在web.xml文件中配置CXFServlet
<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>/webservice/*</url-pattern> </servlet-mapping>
3.在spring的配置文件中增加关于cxf的命名空间
xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=“http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd”
同时引入cxf的xml文件
<import resource="classpath:META-INF/cxf/cxf.xml" />
注意:cxf.xml文件在cxf-core的jar包中已存在,可以直接引入
4.开发好自己需要暴露出来的接口和类,并在类上加入注解@WebService
这是我开发的服务端接口
import javax.jws.WebService; import com.yao.entity.User; @WebService public interface WebserviceI { User insertUser(String name, int age, String sex); }
实现类
import javax.jws.WebService; import com.yao.entity.User; import com.yao.webservice.WebserviceI; @WebService public class WebserviceImpl implements WebserviceI { @Override public User insertUser(String name, int age, String sex) { User user = new User(); user.setId(1); user.setName(name); user.setAge(age); user.setSex(sex); System.out.println("插入用户成功"); return user; }
其中User类是自己开发的一个普通封装类
5.在spring中配置发布服务
<jaxws:endpoint id="WebserviceImpl" implementor="com.yao.webservice.impl.WebserviceImpl" address="webyao"> </jaxws:endpoint>
其中id为写好的实现类,implementor为实现类的全限定名,address为访问路径
这样服务端的整合就全部搞定了,访问时别忘记在你的项目路径后面加入cxfServlet中配置的/webservice和发布路径/webyao以及"?wsdl"
客户端
客户端电脑首先要配置cxf的环境变量CXF_HOME,路径为cxf位置,例如:D:\apache-cxf-3.0.3,然后在path中加入%CXF_HOME%\bin
配置完成后打开命令行输入wsdl2java命令测试,测试成功的话我们就可以通过cxf来生成客户端文件了
输入命令
wsdl2java -p com.yaokr.webservice.user -d d:\src -client http://www.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
-p后面是你要生成的包结构,-d后面是你生成文件的保存路劲,-client后面是你要使用的服务端访问地址.
生成代码之后将代码拷贝到你的项目中,也可以打成jar包后导入
接下来只需要几行简单的代码就可以搞定了
import com.ssm.service.YubaoService; import com.ssm.service.YubaoServiceService; import com.ssm.service.YubaoService_YubaoServicePort_Client; public class Client { public static void main(String[] args) { YubaoServiceService yb = new YubaoServiceService();//new一个服务端实现类对象,如上文中服务端的WebserviceImpl YubaoService ybPort = yb.getYubaoServicePort();//用new出来的实例对象获得服务端口 String query = ybPort.query("北京");//端口调用服务中的方法 System.out.println(query); } }
本段代码是我的客户端测试代码,与上文中的服务端代码不能对接。
至此,整个整合的过程就全部搞定了,希望能够帮助到大家,也希望大神指正代码中的毛病和问题
</div>
相关推荐
在本教程中,我们将深入探讨如何使用Apache CXF 3.0与Spring 3.2框架构建一个简单的"Hello World" Web服务实例。这个过程涵盖了关键的技术组件、配置步骤以及可能遇到的问题解决策略。 首先,Apache CXF是一个开源...
2. **自定义拦截器实现**:你可以通过实现`org.apache.cxf.interceptor.Fault`和`org.apache.cxf.phase.Phase`接口来自定义拦截器。`Phase`接口定义了拦截器执行的阶段,如PRE_INVOKE、POST_INVOCATION等。每个拦截...
标题中的"CXF3.0+Spring3.2 WSSecurity"指的是使用Apache CXF 3.0版本与Spring 3.2版本结合实现WSSecurity(Web Services Security)的示例或教程。WSSecurity是WS-I(Web Services Interoperability Organization)...
【CXF3.0+Spring3.2 RESTFul服务(下)】 在现代Web服务开发中,RESTful API已经成为主流,它通过HTTP协议提供简洁、无状态的接口,易于客户端调用。CXF,一个强大的开源服务框架,支持SOAP和RESTful服务,而Spring...
<bean id="cxf" class="org.apache.cxf.bus.spring.SpringBus"/> <!-- 导入服务配置 --> <import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap...
在IT行业中,RESTFul(Representational State Transfer)是一种广泛应用于Web服务的设计风格,它强调了...通过本教程,你已经掌握了基础的CXF 3.0+Spring 3.2 RESTFul服务发布方法,为进一步的学习和开发奠定了基础。
org.apache.cxf.spring.remoting.Jsr181HandlerMapping.jar
3. **使用Spring管理CXF**:通过Spring的`<cxf:bus>`和`<cxf:service>`标签,可以将CXF服务注册到Spring容器中。这样,你可以利用Spring的依赖注入特性,将其他业务对象注入到服务实现中。 4. **错误处理与调试**:...
spring4.3.x、CXF3.2.x框架部署到Websphere9,在TOMCAT8.5跑没问题,到WAS9上各种冲突,框架用的jar和工具都很新,网上资料很少, 最后干脆自己不停尝试,用了2天时间终于把冲突的jar包理顺了。方法就是各种排列组合...
<bean id="cxf" class="org.apache.cxf.jaxrs.JAXRSServerFactoryBean"> <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider"/> <bean id="myService" class="com.example....
4. **配置文件**:如cxf.xml,用于配置CXF的行为和设置。 要开始使用Apache CXF 2.0.10,开发者需要解压此压缩包,将库文件添加到项目中,然后根据自己的需求配置CXF并编写相应的服务或客户端代码。需要注意的是,...
Spring4.3整合CXF3.0.4需要使用的Jar包,Spring4.0以上需要使用CXF3.0以上的jar包才可以,之前使用CXF2.7会报各种错误,cxf-core-3.0.4.jar,cxf-rt-bindings-soap-3.0.4.jar
【标题】"CXF Spring Maven 实例"是一个关于如何整合并使用这些技术创建Web服务的教程。CXF是一个开源框架,主要用于构建和部署SOAP和RESTful Web服务,Spring则是一个广泛应用的Java企业级开发框架,而Maven是项目...
这些库可能包括了CXF的核心组件、与其他技术(如Spring)的适配器,以及对WS-*规范的支持库。将这些JAR添加到项目的类路径中,可以确保CXF框架的正常运行。 - **bin**:这个目录可能包含了CXF的一些可执行脚本或...
Apache CXF是一个强大的开源服务框架,它为开发者提供了一种高效、灵活的方式来构建和部署Web服务。CXF这个名字是“CXF = XFire + CXF”,...通过学习和应用CXF,你可以构建高效、灵活的服务,并与各种系统进行集成。
Struts2.3.x+Spring3.2.x+Hibernate4.2.x+CXF2.7.x+EasyUI1.3.4+Maven 演示了包括:权限控制、超大附件文件上传、EasyUI基本组件使用等等功能,具体请自行看本示例演示功能 SSHE框架环境需求:JAVA环境:JDK7+;...
【标题】:“cxf+hibernate3.0+spring3.0 完整整合代码实现” 【描述】:“此项目实现了将CXF、Hibernate3.0和Spring3.0这三个开源框架集成到一起,提供了在WebLogic和Tomcat两种应用服务器上的无缝兼容。” ...
本文将深入探讨如何将CXF与Spring框架整合,以构建高效且灵活的Web服务解决方案。 首先,让我们了解CXF。CXF(CXF = CXF = "CXF 是一个框架")是一个开源的Java框架,它允许开发人员创建和消费各种Web服务,包括...
【标题】:“12.CXF与Spring整合为JavaEE应用发布WebService” 【描述】:本章节将深入探讨如何将Apache CXF与Spring框架整合,以构建一个基于JavaEE的应用程序来发布Web服务。CXF是一个开源的Web服务框架,它支持...
本文将详细介绍如何将Spring3与CXF2.7.10进行整合,以创建一个简单的Web服务示例。 ### 1. Spring与CXF整合的基础 - **Spring的作用**: Spring通过提供容器来管理对象的生命周期和依赖关系,使得开发者可以更专注...