web service方法返回list,list里面放的是一个实体类(user),客户端调用此方法返回list,打印list里面的值或遍历list取得实体类,打印实体类属性,出现如javax.xml.bind.JAXBElement@87281f,类似的东西,本来是要出现值的,现在出现了这样一条代码,不知道是怎么回事,求助解决!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【stream_li】截止到2008-07-30 21:38:18的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:20                       每贴平均分数:10                       
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:2                        结贴的总分数:20                       
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:50.00 %               无满意结分率:100.00%                  
    敬礼!

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=stream_li
      

  2.   

    复杂类型对象的编写必须符合JavaBean的规范,简单的说就是对象的属性是通过getter/setter方法来访问的
      

  3.   

    你的客户端是自己写的还是用组建自动生成的?
    你可以debug一下
    看看"实体类"中的值究竟是什么样子的
      

  4.   

    一个已经实现的传递LIST的程序,就是还没写注释。
    //OrderBean.java public class OrderBean {
        private String name;
        private int age;
        private String[] items;
        private int[] price;
        private boolean checked;
        
        public OrderBean() {
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public boolean isChecked() {
            return checked;
        }
        public void setChecked(boolean checked) {
            this.checked = checked;
        }
        public String[] getItems() {
            return items;
        }
        public void setItems(String[] items) {
            this.items = items;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int[] getPrice() {
            return price;
        }
        public void setPrice(int[] price) {
            this.price = price;
        }
    }  //ListOrder.javaimport java.util.ArrayList;
    public class ListOrder{    
        public ListOrder(){    
        }
        
        public ArrayList getListOrder(){
            OrderBean bean1=new OrderBean();
     bean1.setAge(10);
     OrderBean bean2=new OrderBean();
     bean2.setAge(20);
            ArrayList list = new ArrayList();
      list.add(bean1);
     list.add(bean2);
            return list;
        }
    }  //deploy.wsdd
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" 
        xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">    
        <service name="ListOrder" provider="java:RPC">
            <parameter name="className" value="ListOrder"/>
            <parameter name="allowedMethods" value="*"/>
            <beanMapping qname="myNS:Order" xmlns:myNS="urn:AnalyzeOrder" 
                languageSpecificType="java:OrderBean"/>
        </service>
    </deployment>  //ListOrderClient.javapackage test.backup;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    import java.util.ArrayList;
    import java.util.List;
    public class ListOrderClient {
        public ListOrderClient() {
        }
        public static void main(String [] args) throws Exception
       {
           String targetEendPoint =
                   "http://localhost:8080/axis/services/ListOrder";              Service service = new Service();
           Call call = (Call) service.createCall();
           QName qn = new QName("urn:AnalyzeOrder", "Order");
           call.registerTypeMapping(OrderBean.class, qn,
                                    new org.apache.axis.encoding.ser.
                                    BeanSerializerFactory(OrderBean.class, qn),
                                    new org.apache.axis.encoding.ser.
                                    BeanDeserializerFactory(OrderBean.class, qn));       call.setTargetEndpointAddress(new java.net.URL(targetEendPoint));
           call.setOperationName(new QName("ListOrder", "getListOrder"));
           //call.addParameter("arg1", qn, ParameterMode.IN);   
           call.setReturnType(new QName("ArrayList"), ArrayList.class);
           ArrayList list = (ArrayList) call.invoke(new Object[] {});       for (int i = 0; i < list.size(); i++) {
               OrderBean order =(OrderBean) list.get(i);
               System.out.println(order.getAge());
           }    }
    }
      

  5.   

    http://blog.csdn.net/changleqy/archive/2008/07/31/2743747.aspx
    带了说明的文档