开发者社区> 问答> 正文

关于webService 客户端 调用 对象数组 问题

javawebservice
我自己写的一个服务端需要的参数是一个对象数组 比如
public String getAge(Student[] ss ) {
return ss[0].getAge();
}
这种形式的,
但是在客户端调用的时候 服务端接收到的 ss 对象数组的长度都为1,里面的对象的值都为null,哪位
下面是客户端调用代码
screenshot

展开
收起
蛮大人123 2016-02-26 11:09:56 2738 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    call.invoke 的参数本来就是数组,就不用再在数组里面加数组了
    代码如下:

    public static void main(String [] args) throws ServiceException, MalformedURLException, RemoteException{
     Logger log=Logger.getLogger(Client.class);
     String nameSpace="http://impl.webservice";
     String method="getAge";
     Service service = new Service();
     Call call=(Call)service.createCall();
     call.setTargetEndpointAddress(new java.net.URL("http://localhost:8070/TEST/services/testMyService?wsdl"));
     call.setUseSOAPAction(true);
     Object[] ss=new Student[2];
     Student s0=new Student();
     s0.setAge("123");
     s0.setName("57");
     ss[0]=s0;
       Student s1=new Student();
        s1.setAge("123");
        s1.setName("213");
        ss[1]=s1;
    
        QName qn =new QName(nameSpace,method);
        call.setOperationName(qn);
        call.registerTypeMapping(Student.class, qn,
                   new org.apache.axis.encoding.ser.BeanSerializerFactory(Student.class, qn),        
                  new org.apache.axis.encoding.ser.BeanDeserializerFactory(Student.class, qn));
        for(int i=0;i<ss.length;i++){
            call.addParameter(qn, XMLType.SOAP_ARRAY,   ParameterMode.IN);
        }
        String ret = (String) call.invoke(ss);
    
        log.info(ret);
        System.out.println(ret);
    
    }
    2019-07-17 18:48:03
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载