axis web service传送 两个 对象数组

先是 调用测试端代码:

  SimDesignVariable[] designValue = new SimDesignVariable[1000];
  designValue[0] = new SimDesignVariable("psSpringXIn",0.0);
  designValue[1] = new SimDesignVariable("psSpringYIn",0.0);
  designValue[2] = new SimDesignVariable("psSpringZIn",0.0);
  
  designValue[3] = new SimDesignVariable("psSpringXOut",0.0);
  designValue[4] = new SimDesignVariable("psSpringYout",0.0);
  designValue[5] = new SimDesignVariable("psSpringZout", 0);
  
  designValue[6] = new SimDesignVariable("ssSpringX",0.0);
  designValue[7] = new SimDesignVariable("ssSpringY",0.0);
  designValue[8] = new SimDesignVariable("ssSpringZ",0.0);
  

  
//  另一个定长对象数组
  SimObjectiveFunction[] obfunctionValue = new SimObjectiveFunction[100];
  obfunctionValue[0] = new SimObjectiveFunction("WzY",0.0);
  obfunctionValue[1] = new SimObjectiveFunction("WzZ",0.0);
  obfunctionValue[2] = new SimObjectiveFunction("Vcr",0.0);
  
  String targetEendPoint = "http://166.22.55.102:8080/axis/services/SimCallOptXml?wsdl";
  Object result = new Object();
  // System.out.println(order.isChecked());
  try {

   Service service = new Service();
   Call call = (Call) service.createCall();
   QName qn = new QName("urn:SimCallOptXml", "Orde");
   QName qn22 = new QName("urn:SimCallOptXml", "Order");
   call.registerTypeMapping(SimDesignVariable.class, qn,
     new org.apache.axis.encoding.ser.BeanSerializerFactory(
       SimDesignVariable.class, qn),
     new org.apache.axis.encoding.ser.BeanDeserializerFactory(
       SimDesignVariable.class, qn));

   call.registerTypeMapping(SimObjectiveFunction.class, qn22,
     new org.apache.axis.encoding.ser.BeanSerializerFactory(
       SimObjectiveFunction.class, qn22),
     new org.apache.axis.encoding.ser.BeanDeserializerFactory(
       SimObjectiveFunction.class, qn22));
   call.setTargetEndpointAddress(new java.net.URL(targetEendPoint));
   call.setOperationName(new QName("SimCallOptXml", "procress"));
   System.out.println("Success...");
   call.addParameter("arg1", qn, ParameterMode.IN);
   call.addParameter("arg2", qn22, ParameterMode.IN);
   call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
   result = (String) call.invoke(new Object[] { designValue, obfunctionValue });

   
  }
  catch (AxisFault fault) {
   result = "Error is: " + fault.toString();
  }
  catch (IOException e) {
   e.printStackTrace();
  } catch (ServiceException e) {
   e.printStackTrace();
  }

 

    上面比较重要的就是怎样添加两种供 Call识别的 参数类型(SimDesignVariable类, 和SimObjectiveFunction类)

 

  被调用的SimCallOptXml类 中  procress(SimDesignVariable[ ] degsign, SimObjectiveFunction[ ] obfunctionValue)  

  在发布服务的描述文件server-config.wsdd 中的片段:

 

     <service name="SimCallOptXml" provider="java:RPC">
  <parameter name="allowedMethods" value="procress"/>
  <parameter name="className" value="objectTest.simCallOpt.SimCallOptXml"/>
  <beanMapping languageSpecificType="java:objectTest.simCallOpt.SimDesignVariable" qname="ns3:SimDesignVariable" xmlns:ns3="urn:SimCallOptXml"/>
  <beanMapping languageSpecificType="java:objectTest.simCallOpt.SimObjectiveFunction" qname="ns3:SimObjectiveFunction" xmlns:ns3="urn:SimCallOptXml"/>
 </service>

 

   主要是多添加了一个 beanMapping  标签。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值