这个比较迷惑人。。。至少对我这个初学者来说是如此。后面解释原因。
一、加入cxf支持
简单的说就是创建一个普通的web项目,并加将cxf的发布包和依赖包加入到项目的lib目录下。如果本项目不存在对外提供web服务的义务,那么可以只加入作为客户端所需的依赖包即可(具体是哪几个,我现在也不知道
)
二、创建客户端的对应接口
package cn.ibeans.cxf.client;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
String sayHello(String msg);
}
三、配置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:p="http://www.springframework.org/schema/p"
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="client" class="cn.ibeans.cxf.client.HelloWorld"
factory-bean="clientFactory" factory-method="create"/>
<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="cn.ibeans.cxf.client.HelloWorld"/>
<property name="address" value="http://localhost:8088/cxfServer/HelloWorld"/>
</bean>
</beans>
四、测试一把
写个测试类
package cn.ibeans.cxf.client;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloWorldTest {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); // your Spring ApplicationContext
HelloWorld client = (HelloWorld) context.getBean("client");
String s = "aaaaaa";
if(client!=null){
s = client.sayHello("1234567880");
}
System.out.println("服务端的返回值为:"+s);
}
}
运行一下测试类。看看都输出了什么?
五、小结
1、一定不要忘了在客户端创建一个名称和方法均与服务端一至的接口,这是我刚明白的道理。网上很多文章都写得很好。但全都忽略了这一点。那些文章往往将客户端和服务端放在一个web项目里演示。所以客户端可以直接引用服务端的接口类。但现实中完全不是这样,服务端能对客户端提供的只有wsdl的访问地址。很是感慨:高手写的文章往往会忽略一些不值一提,但对初学者却非常重要的细节。我就在这点上花费了不少时间才明白。
2、当前例子中只写了个java类来做测试。真正的web应用会对它页面来调用接口实现与服务端的对接。
分享到:
相关推荐
Apache CXF 是一个开源的Java框架,它主要用于构建和开发服务导向架构...结合Spring框架,可以进一步提升服务的管理和维护能力。通过深入学习和实践,开发者可以充分利用CXF的优势,提高软件开发的效率和质量。
本学习笔记旨在提供对Apache CXF的基本理解、功能特性和实际操作指导。 **1. CXF 简介** 1.1 CXF概述 Apache CXF是一个全面的服务开发框架,它允许开发者创建和部署各种类型的Web服务,包括基于SOAP、RESTful、WS-...
【CXF与Spring整合基础学习笔记】 在Java企业级开发中,Apache CXF是一个非常流行的开源服务框架,它用于构建和开发服务,支持多种Web服务标准。而Spring框架则是Java应用开发的核心框架,提供了一个全面的编程和...
3. "ws_1231_cxf_spring_client":对应的客户端项目,展示了如何在Spring环境中创建Web服务客户端,调用由CXF提供的服务。这将涵盖如何设置客户端代理、发送请求和处理返回结果。 通过这些资料,学习者可以深入理解...
文件“WebService_CXF学习.doc”和“axis2_WebService_开发指南.docx”、“axis_WebService_-_开发指南.docx”应该包含了关于这两个框架的详细教程和实践案例,可以帮助你更深入地理解和应用它们。 总的来说,Axis2...
总的来说,这份“webservice+cxf基础笔记和视频”资源将引导你进入Web服务的世界,通过学习和实践,你可以掌握使用CXF和Spring进行Web服务开发的基本技能。无论你是初学者还是有一定经验的开发者,这都将是一份有...
- **CXF开发例子**:创建一个CXF Web服务通常包括定义服务接口、实现服务、配置服务发布和创建服务客户端。这些步骤可以通过注解、XML配置或者代码动态生成完成。 - **CXF与Spring集成例子**:CXF可以方便地与...
Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL ...
### Apache CXF 学习笔记知识点汇总 #### 一、CXF简介 ##### 1.1 CXF概述 - **背景介绍**:Apache CXF 是一个高性能、功能丰富的开源框架,用于构建和消费 Web 服务。它融合了 Celtix 和 XFire 两个开源项目的...
本笔记将探讨CXF的基本概念、如何使用CXF构建Webservice以及与之相关的技术栈,如Spring、Struts2等。 1. **CXF简介** - CXF(CXF Xfire + XWS)是两个项目的合并,提供了SOAP、RESTful、XML/HTTP、WS-*等协议的...
"CXF学习笔记.docx"可能是个人或团队在学习CXF过程中整理的笔记,可能包含了一些实用技巧、常见问题解答以及解决方案。 8. **CXF框架下的WebService.ppt** 这个PPT文件可能是一个关于CXF的演示文稿,用于教学或...
- **创建客户端**:使用CXF的工具,如wsimport,生成客户端代理类,并调用服务。 4. **SOAP与RESTful的区别**: - SOAP是基于XML的消息协议,主要用于Web服务,强调消息的完整性和安全性,但相对复杂。 - ...
【标题】:“CXF笔记” 【描述】:这篇博客文章主要探讨了Apache CXF框架的使用和理解,CXF是一个开源服务框架,它允许开发者构建和消费...总的来说,这篇“CXF笔记”是学习和深入了解CXF框架及其应用的一个宝贵资源。