1 Reply Latest reply on Jul 15, 2009 6:04 AM by tfennelly

    soapclient invoke the webservice method  that has a list par

    cammette

      i expose a webservice throuth jboss ws:

      @WebService(name="TbWorkFlowUI")
      public class TbWorkFlowUI {
       @WebMethod
       public boolean submitData(@WebParam(name="cInputData")VData cInputData, @WebParam(name="cOperate")String cOperate) {
       System.out.println(cInputData);
       boolean r = (Boolean)cInputData.get(0);
       return r;
       }
      
      }
      


      jboss esb soapclient conf:
      <action class="org.jboss.soa.esb.actions.soap.SOAPClient"
       name="soap_invoke_submitData">
       <property name="wsdl"
       value="http://10.1.32.17:8001/services/TbWorkFlowUI?wsdl" />
       <property name="responseAsOgnlMap" value="true" />
       <property name="SOAPAction" value="submitData" />
       </action>
      


      my serviceinvoke client:
      Message esbMessage = MessageFactory.getInstance().getMessage(
       MessageType.JBOSS_XML);
       List list = new ArrayList();
       list.add("1");
       list.add("2");
       Map map = new HashMap();
       map.put("submitData.cInputData", list)
       esbMessage.getBody().add(map);
       ServiceInvoker invoke = new ServiceInvoker("baodan",
       "LisECInterface");
       Message m = invoke.deliverSync(esbMessage, 10000);
      


      but the method of submitData println:
      [[cInputData:null],[cInputData:null]]

      somebody could help me?

        • 1. Re: soapclient invoke the webservice method  that has a list
          tfennelly

          I think the easiest thing to do, before trying to use the SOAPClient at all, is to:

          1. Deploy the webservice endpoint.

          2. Using the soapUI Client, open a request to the appropriate SOAP operation on the endpoint. This lets you see the SOAP body and so determine the type of object Map you need to construct.

          3. The try configuring the SOAPClient action.