首先服务端是由CXF发布的服务CXF服务版本为2.2,之前说过2.3JDK需要1.6的,本人用1.5版本。
本章只讲对象数组的传递和List类型的传递。
CXF客户端:
本人用的CXF版本为2.2和2.3均可以通过。
首先是客户端包装接口,只需要定义和服务接口一样即可,名称可以任意,但是包名必须相同。
如:客户端定义接口如下(跟服务端一样哦):
@WeService
public class IHelloWorld {
User[] getUsers(User[] user){
return user;
}
List<User> getListUser(List<User> user){
return user;
}
}
User.java我就不写了,很简单。
客户端调用:
JaxWsProxyFactoryBean factory1 = new JaxWsProxyFactoryBean();
factory1.setServiceClass(IHelloWorld.class);
factory1.setAddress("http://127.0.0.1:8088/**/IHelloWorld");
QName qName1 = new QName("命名空间");//wsdl文件中targetNameSpace的值
factory1.setServiceName(qName1);
IHelloWorld service = (IHelloWorld) factory1.create();
List<User> list = new ArrayList<User>();
User user = new User();
user.setAge(25);
user.setName("fei");
User[] users = new User[]{user};
list.add(user);
//直接可以调用了
System.out.println(service.getUsers(users));
System.out.println(service.getListUser(users));
OK CXF的调用就可以。如有问题可以联系我
AXIS2客户端:
axis2调用还是要注意一些问题的。我用的jdk是1.4的版本比较低,在实现的过程中让我很头疼,大家最好还是用1.5之上的吧。另外大家最好用axis2 1.4版本的,因为之前的版本与CXF服务端访问时,SOAP可能无法解析会出错。
因为axis无法直接传递list和对象数组参数,1.4是这样的高版本就不晓得了。所以必须封装一下我们建一个Users.java
public class Users{
private User[] user;
private List userList;
//get和set方法
}
User.java就不写了
客户端调用:写在MAIN方法里,如果做项目就写在action里
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference("http://localhost:8088/**/HelloWorld?wsdl");
options.setTo(targetEPR);
QName name2 = new QName("targetNameSpace", "getUsers");
QName name3 = new QName("targetNameSpace"getListUser");
Users users = new Users();
User[] user2 = new User[2];
List list = new ArrayList();
for (int i = 0; i < 2; i++) {
User user1 = new User();
user1.setName("fei" + i);
user1.setAge(24 + i);
user2[i] = user1;
list.add(user1);
}
users.setUsers(user2);
users.setUserList(list);
Object[] object1 = new Object[] { users };
Class[] classes2 = new Class[] { Users.class };
Class[] classes3 = new Class[] { List.class };
Object[] object3 = serviceClient.invokeBlocking(name2, object1, classes2);
System.out.println(object3.toString());
Object[] object4 = serviceClient.invokeBlocking(name3, object1, classes3);
List list1 = (List) object4[0];
System.out.println(list1.size());
OK ,Axis2的访问也很简单。有问题请留言。
分享到:
相关推荐
本文将深入探讨两种流行的Java Web服务框架——Axis2和CXF,并提供一个简单的实例来帮助理解它们的工作原理和使用方法。 首先,让我们了解一下`Axis2`。Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的...
CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2框架的区别,以帮助开发者...
Axis1, Axis2, Xfire, CXF 是四种常用的WebService框架,它们之间有着不同的特点和应用场景。本文将对这四种框架进行详细的比较和分析,以帮助开发者选择合适的框架。 XFire 是一种新一代的 WebService 平台,它...
Apache Axis2和CXF都是Java世界中非常知名的Web服务框架,它们主要用于构建和部署Web服务。两者各有特色,适用于不同的应用场景。以下是对这两个框架特点、区别及适用场合的详细对比,以及它们在效率上的表现。 1. ...
当我们谈论“Axis2,CXF版本学习笔记”时,这通常涉及到两个主要的Java Web服务框架:Apache Axis2和Apache CXF。这两个框架都用于构建和部署SOAP(简单对象访问协议)和RESTful(Representational State Transfer)...
本文主要对比了三种流行的Java Web服务框架:XFire、Axis2和CXF,以帮助开发者做出最佳选择。 首先,CXF是一个由Apache基金会维护的重量级SOA(面向服务架构)框架,它支持ESB(企业服务总线),并实现了Web服务、...
Axis1.x版本是较老的实现,而Axis2是其后续版本,提供了更好的性能和模块化设计。 ### 二、CXF客户端调用Axis服务端步骤 #### 1. 获取服务端WSDL 首先,你需要获取Axis服务端的WSDL(Web Service Definition ...
标题中的"axis2-1.8.0apache-cxf-3.4.4.rar"是一个压缩包文件,其中包含了两个重要的开源项目:Apache Axis2版本1.8.0和Apache CXF版本3.4.4。这两个项目都是用于构建和部署Web服务的重要工具,主要应用于Java开发...
3. **调用服务方法**:通过生成的服务代理类实例,我们可以调用Axis2接口服务中的具体方法,传递参数并接收响应。 4. **处理结果**:收到服务响应后,根据业务需求进行数据解析和后续操作。 5. **异常处理**:添加...
在 Axis1.4 中传递复杂类型数组参数,涉及到的是 Web 服务中的数据绑定和消息处理。Axis 是一个开源的 SOAP 库,它允许开发者创建、部署和使用 Web 服务。在处理复杂类型数组时,ArrayMapping 是 Axis 中的一个关键...
- **Axis2**:支持多种序列化机制,如XMLBeans、JiBX、JaxMe和JAXB等,但在与Spring框架的集成上不如CXF方便。 - **CXF**:与Spring框架有着很好的集成,能够很好地利用Spring的各种特性,如依赖注入、事务管理等...
在IT行业中,Axis1.2和CXF框架是两个重要的Web服务开发工具,它们主要用于构建和部署SOAP(简单对象访问协议)服务。这两个框架都基于Java语言,为开发者提供了便捷的方式来实现服务接口,并且支持WS-I(Web服务互...
【WebService Axis和XFire(CXF)的开发流程】 在IT领域,WebService是一种基于XML的通信标准,用于构建分布式系统中的应用程序接口(API)。本篇主要介绍两种常用的WebService框架——Axis和XFire(现已被CXF合并)...
在本文中,我们将深入探讨WebService的原理以及如何利用Apache Axis和Apache CXF这两个流行的Java框架来实现和消费WebService。 首先,理解WebService的基础概念至关重要。WebService是一种通过互联网进行通信的...
2. 创建Web服务:使用CXF的wsdl2java工具或者Axis的wsdl2java工具,从WSDL文件生成Java服务接口和服务实现。 3. 配置服务发布:在Spring配置文件中,通过CXF或Axis的配置元素,设置服务的地址和绑定信息。 4. 客户端...
本文介绍了如何使用Eclipse、Axis2以及Spring和CXF来创建和调用WebService。通过实际操作步骤,读者可以了解到构建WebService的基本流程和技术要点。无论是对于初学者还是有一定经验的开发者来说,都能够从中获得...
### WebService技术应用:Spring 3 + CXF 3.4与Axis 1.4的交互 在现代软件开发中,Web服务作为一种重要的技术手段,被广泛应用于不同系统之间的通信。其中,Spring框架与Apache CXF是实现RESTful或SOAP风格的Web...
通过对Axis与Axis2在使用WSDL2Java工具时的不同之处的详细探讨,我们可以看到,虽然两种工具都实现了相似的功能,但Axis2在很多方面都进行了优化和改进,尤其是在命令行参数、部署描述文件生成以及数据绑定等方面。...
4. **配置文件**:如axis2.xml,这是Axis2的全局配置文件,定义了服务的默认行为和运行时参数。 5. **工具和脚本**:可能包括用于生成服务或客户端代码的工具,如wsdl2java等。 了解并熟练使用Axis1.4和Axis2的相关...
axis2实现WebService之复合类型数据的传递.doc