Java6 WebService 使用集合

集合是一种非常有用的数据类型,基本上所有的程序离不开集合数据类型。在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); 
        } 
}
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() { 
        } 
......
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() { 
        } 

......
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); 
        } 
}
4、启动运行
 
 
从上面的测试可以看出,JWS使用Java集合并没有问题,如果我们的WebService服务端和客户端均使用Java语言做开发,集合会得到完美支持。
如果的客户端使用了别的语言,比如C++、C#等,那就不一定了。
posted @ 2013-08-12 16:25  Agrimony  阅读(282)  评论(0)    收藏  举报