集合是一种非常有用的数据类型,基本上所有的程序离不开集合数据类型。在Axis2、XFire中使用集合,往往存在一些问题。这里测试下JWS中使用集合的情况。甚至有人网上说JWS使用List会出问题,还要变通下,google一下能搜出好多同样内容的文章。这里我也试试,看有什么问题! 实际上我告诉大家,JWS使用List没问题,不信看看下面的例子。
1、写JWS
package lavasoft;
import lavasoft.wsclient.Foo;
import lavasoft.wsclient.Java6WS;
import lavasoft.wsclient.Java6WSService;
import lavasoft.wsclient.UserBean;
import java.util.ArrayList;
import java.util.List;
/**
* 测试Java6 WS生成的客户端代码
*
* @author leizhimin 2009-11-16 17:05:00
*/
public class TestClient {
public static void main(String[] args) {
//创建一个客户端服务对象
Java6WS java6WS = new Java6WSService().getJava6WSPort();
System.out.println("----------java6WS.doSomething1-------------");
//调用服务方法,并得到方法返回值
List<UserBean> listUserBean = java6WS.doSomething1("zhangsan", "华中路", true);
//打印服务的返回值
for (UserBean userBean : listUserBean) {
System.out.println(userBean.getUsername() + " " + userBean.getAddress() + " " + userBean.isFlag());
}
System.out.println("----------java6WS.doSomething2-------------");
List<Foo> listFoo = new ArrayList<Foo>();
Foo f1 = new Foo();
f1.setName("张三");
f1.setSex("Man");
Foo f2 = new Foo();
f2.setName("李四");
f2.setSex("Man");
listFoo.add(f1);
listFoo.add(f2);
String sf = java6WS.doSomething2(listFoo);
System.out.println(sf);
}
}
import lavasoft.wsclient.Foo;
import lavasoft.wsclient.Java6WS;
import lavasoft.wsclient.Java6WSService;
import lavasoft.wsclient.UserBean;
import java.util.ArrayList;
import java.util.List;
/**
* 测试Java6 WS生成的客户端代码
*
* @author leizhimin 2009-11-16 17:05:00
*/
public class TestClient {
public static void main(String[] args) {
//创建一个客户端服务对象
Java6WS java6WS = new Java6WSService().getJava6WSPort();
System.out.println("----------java6WS.doSomething1-------------");
//调用服务方法,并得到方法返回值
List<UserBean> listUserBean = java6WS.doSomething1("zhangsan", "华中路", true);
//打印服务的返回值
for (UserBean userBean : listUserBean) {
System.out.println(userBean.getUsername() + " " + userBean.getAddress() + " " + userBean.isFlag());
}
System.out.println("----------java6WS.doSomething2-------------");
List<Foo> listFoo = new ArrayList<Foo>();
Foo f1 = new Foo();
f1.setName("张三");
f1.setSex("Man");
Foo f2 = new Foo();
f2.setName("李四");
f2.setSex("Man");
listFoo.add(f1);
listFoo.add(f2);
String sf = java6WS.doSomething2(listFoo);
System.out.println(sf);
}
}
package lavasoft.server;
/**
* Created by IntelliJ IDEA.
*
* @author leizhimin 2009-11-16 17:09:46
*/
public class Foo {
private String name;
private String sex;
public Foo() {
}
......
/**
* Created by IntelliJ IDEA.
*
* @author leizhimin 2009-11-16 17:09:46
*/
public class Foo {
private String name;
private String sex;
public Foo() {
}
......
package lavasoft.server;
/**
* 用户信息
*
* @author leizhimin 2009-11-16 16:43:35
*/
public class UserBean {
private String username;
private String address;
private boolean flag;
public UserBean() {
}
......
/**
* 用户信息
*
* @author leizhimin 2009-11-16 16:43:35
*/
public class UserBean {
private String username;
private String address;
private boolean flag;
public UserBean() {
}
......
2、生成客户端代码
3、写测试类
package lavasoft;
import lavasoft.wsclient.Foo;
import lavasoft.wsclient.Java6WS;
import lavasoft.wsclient.Java6WSService;
import lavasoft.wsclient.UserBean;
import java.util.ArrayList;
import java.util.List;
/**
* 测试Java6 WS生成的客户端代码
*
* @author leizhimin 2009-11-16 17:05:00
*/
public class TestClient {
public static void main(String[] args) {
//创建一个客户端服务对象
Java6WS java6WS = new Java6WSService().getJava6WSPort();
System.out.println("----------java6WS.doSomething1-------------");
//调用服务方法,并得到方法返回值
List<UserBean> listUserBean = java6WS.doSomething1("zhangsan", "华中路", true);
//打印服务的返回值
for (UserBean userBean : listUserBean) {
System.out.println(userBean.getUsername() + " " + userBean.getAddress() + " " + userBean.isFlag());
}
System.out.println("----------java6WS.doSomething2-------------");
List<Foo> listFoo = new ArrayList<Foo>();
Foo f1 = new Foo();
f1.setName("张三");
f1.setSex("Man");
Foo f2 = new Foo();
f2.setName("李四");
f2.setSex("Man");
listFoo.add(f1);
listFoo.add(f2);
String sf = java6WS.doSomething2(listFoo);
System.out.println(sf);
}
}
import lavasoft.wsclient.Foo;
import lavasoft.wsclient.Java6WS;
import lavasoft.wsclient.Java6WSService;
import lavasoft.wsclient.UserBean;
import java.util.ArrayList;
import java.util.List;
/**
* 测试Java6 WS生成的客户端代码
*
* @author leizhimin 2009-11-16 17:05:00
*/
public class TestClient {
public static void main(String[] args) {
//创建一个客户端服务对象
Java6WS java6WS = new Java6WSService().getJava6WSPort();
System.out.println("----------java6WS.doSomething1-------------");
//调用服务方法,并得到方法返回值
List<UserBean> listUserBean = java6WS.doSomething1("zhangsan", "华中路", true);
//打印服务的返回值
for (UserBean userBean : listUserBean) {
System.out.println(userBean.getUsername() + " " + userBean.getAddress() + " " + userBean.isFlag());
}
System.out.println("----------java6WS.doSomething2-------------");
List<Foo> listFoo = new ArrayList<Foo>();
Foo f1 = new Foo();
f1.setName("张三");
f1.setSex("Man");
Foo f2 = new Foo();
f2.setName("李四");
f2.setSex("Man");
listFoo.add(f1);
listFoo.add(f2);
String sf = java6WS.doSomething2(listFoo);
System.out.println(sf);
}
}
4、启动运行
从上面的测试可以看出,JWS使用Java集合并没有问题,如果我们的WebService服务端和客户端均使用Java语言做开发,集合会得到完美支持。
如果的客户端使用了别的语言,比如C++、C#等,那就不一定了。
本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/228531
发表评论
-
WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响应消息
2011-06-16 17:07 741在Axis2中提供了一个Axis2 ... -
http://androidguy.blog.51cto.com/974126/214862
2011-06-16 17:06 775Axis2可以通过模块(Module)进行扩展。Axis2模块 ... -
WebService大讲堂之Axis2(8):异步调用WebService
2011-06-16 17:05 773在前面几篇文章中都是使用同步方式来调用WebService。也 ... -
WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService
2011-06-16 17:05 1101在现今的Web应用中经常使用Spring框架来装载JavaBe ... -
WebService大讲堂之Axis2(6):跨服务会话(Session)管理
2011-06-16 17:00 853在《WebService大讲堂之Axis2(5):会话(Se ... -
WebService大讲堂之Axis2(5):会话(Session)管理
2011-06-16 17:00 790WebService给人最直观的感觉就是由一个个方法组成,并在 ... -
WebService大讲堂之Axis2(4):二进制文件传输
2011-06-16 16:59 848在《WebService大讲堂之Axis2(2):复合类型数据 ... -
WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
2011-06-16 16:58 722用Axis2实现Web Service,虽然可以将POJO类放 ... -
WebService大讲堂之Axis2(2):复合类型数据的传递
2011-06-16 16:57 916在实际的应用中,不仅需要使用WebService来传递简单类型 ... -
WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
2011-06-16 16:57 748Axis2是一套崭新的WebService引擎,该版本是对Ax ... -
Java6 WebService 使用复杂对象
2011-06-16 16:51 873Java6 WebService 使用复杂 ... -
Java6 WebService客户端封装
2011-06-16 16:50 1068在开发WebService客户端应用的时候,面临的最大挑战是事 ... -
Java6 WebService的发布
2011-06-16 16:49 901WebService服务发布往往比较混乱,Axis2的发布形式 ... -
Java6开发WebService进阶
2011-06-16 16:47 1119在上文中,使用Java6做 ... -
Java6开发WebService入门
2011-06-16 16:17 823之前常常用CXF、Axis2、XF ...
相关推荐
为了使得Java客户端能够调用WebService服务,需要使用一些工具,例如JAX-WS(Java API for XML Web Services),它是Java SE的一部分,用于创建WebService客户端和服务端。 综上所述,通过Java调用带有JSON参数的...
1. **导入必要的类库**:首先,代码导入了多个类库,包括`java.util`下的集合类,`javax.xml.namespace`下的`QName`用于命名空间操作,`org.apache.axis.client`下的`Call`和`Service`类,这些是Apache Axis的核心类...
【Java发布和调用WebService】知识点详解 Java WebService是一种基于标准的、平台无关的通信方式,用于不同系统之间的交互。在Java中,主要通过JAX-WS(Java API for XML Web Services)框架来实现WebService的发布...
综上所述,本案例涉及了WebService接口设计、泛型的使用、XML配置和数据序列化等关键知识点,这对于任何需要通过网络交互数据的Java开发者来说都是重要的技能。通过研究提供的代码和理解其背后的原理,你可以掌握...
Java作为一种广泛使用的编程语言,在开发基于Webservice的应用时具有天然优势。本文将详细介绍两种主流的Java调用Webservice的方式:Axis和SOAP,并通过具体代码示例进行阐述。 #### 二、Axis 方式调用 Webservice ...
实践中,我们需要结合具体的技术栈(如.NET、Java等)和框架(如ASP.NET Web Services、WCF、RESTful APIs等)来应用这些知识,以实现稳定可靠的集合数据交换。如果你在实现过程中遇到问题,可以参考提供的QQ群或...
总的来说,这个教程集合为学习Java WebService提供了全面的资源,无论是中文还是英文,都包含了从基础到进阶的内容,可以帮助开发者全面理解和掌握Web服务的开发和应用。对于想要提升这方面技能的人来说,这是一个...
### Java之WebService_Aegis.xml详解 #### 一、概述 `aegis.xml`配置文件主要用于在Web服务(尤其是使用了XFire框架的情况下)中定义如何处理复杂的数据类型,特别是那些集合类型的参数或返回值。通过配置`aegis....
6. **部署和测试**:在MyEclipse中,开发完Web服务后,可以通过内置的Tomcat服务器进行部署,并使用内置的Web服务测试工具进行功能验证和性能测试。 总之,"myeclipse webservice 常用jar包集合"是一个包含了...
Java WebService服务jar包是Java开发中用于实现Web服务的重要工具集合。Web服务是一种通过互联网交换数据和执行业务逻辑的方法,它允许不同系统之间进行互操作。在Java中,我们通常使用SOAP(Simple Object Access ...
SHH框架集合Webservice是一个专为Java开发人员设计的整合性解决方案,旨在简化Web服务的开发、部署和消费。这个框架结合了Spring、Hibernate和Struts(SHH)这三个流行的开源技术,为构建高效、可扩展的企业级应用...
在Java中,可以使用JAXB(Java Architecture for XML Binding)来实现;在.NET中,有XmlSerializer类用于此目的。 2. **复杂数据类型支持**:SOAP规范允许定义复杂数据类型,即XSD(XML Schema Definition)中的...
"Java WebService开发系列-基础篇.ppt"是一个PPT教程,可能从基础出发,介绍了使用Java进行WebService开发的基本步骤和技术。 最后,"Xifire+Jibx_刘洪.ppt"可能涉及了XFire(后来成为Apache CXF的一部分)和JiBX...
本资源集合提供的"Jax-ws RI"(Java API for XML Web Services Reference Implementation)正是用于实现SOAP协议的Java工具包,它为开发和部署WebService提供了全面的支持。 首先,让我们详细了解一下JAX-WS(Java ...
4. **Java编程基础**: 对于这个项目,学生需要具备扎实的Java编程基础,包括面向对象编程、异常处理、集合框架的使用、IO流以及多线程等。 5. **测试与调试**: 为了确保服务的正确性,学生还需要了解单元测试和集成...
- 自定义类型参数集合:可以使用List或Array SoapObject来表示集合,每个元素都是自定义类型的SoapObject。 6. 示例代码片段 ```java // 创建SoapObject表示请求 SoapObject request = new SoapObject...
Apache Axis是Java中广泛使用的SOAP库,它允许开发者创建和调用Web服务。在示例中,`org.apache.axis.client.*`包下的类被用来创建和执行SOAP请求。 2. **Service类和Call接口**: - `Service`类是Apache Axis的...
总之,这个“个人总结的webservice jar包”集合了实现Java Web服务所需的关键库,覆盖了从服务创建、部署到客户端消费的全过程,是学习和实践Web服务开发的宝贵资源。不过,要注意的是,随着技术的发展,新的框架如...
Java 提供了多种网络互联方式,例如 Socket 编程、RMI(Remote Method Invocation)、WebService 等。 三、后端开发 后端开发是指服务器端的开发,负责处理客户端的请求和响应。Java 是一种流行的后端开发语言,...