Hey all,

Ok, this seems to be a bit of an FAQ, but I've searched the list and cant
see why the following shouldn't work.  I'm using AXIS 1.0 to call a
webmethods server.  I've got WSDL for the service, and am using the
following code - the actual request is further below.

    String message = "f_receivePRMessage";
    Service service = new Service(new
FileInputStream("f_receivePRMessage.wsdl"),
                                  new QName("http://localhost/";,
"http___localhost_processService"));
    Call call = (Call) service.createCall(new
QName("http___localhost_processPort0"),
                                          new QName(message));
    call.setTargetEndpointAddress(portAddress);

    call.registerTypeMapping(PRDetailsArrayItem.class, new
QName("http://www.webMethods.com/noNamespace/";, "PRDetailsArrayItem"),
                             BeanSerializerFactory.class,
BeanDeserializerFactory.class);
    call.registerTypeMapping(HashMap.class, new
QName("http://www.w3.org/2001/XMLSchema";, "anyType"),
                             MapSerializerFactory.class,
MapDeserializerFactory.class);

    call.setProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
    call.setProperty(Call.USERNAME_PROPERTY, "user");
    call.setProperty(Call.PASSWORD_PROPERTY, "pass");

    Object response = call.invoke(new Object[]{txID createPRItem()});

This then gives me the following soap request (excuse the verbosity..., note
the multiRef)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <ns1:f_receivePRMessage
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="process">
   <transactionID
xsi:type="xsd:string">a519e280-b678-1004-8005-5991bba78578</transactionID>
   <PRDetails href="#id0"/>
  </ns1:f_receivePRMessage>
  <multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xsi:type="ns2:PRDetailsArrayItem"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns2="http://www.webMethods.com/noNamespace/";>
   <PREQ_ITEM xsi:type="xsd:string">00100</PREQ_ITEM>
   <PREQ_NAME xsi:type="xsd:string">LEEA</PREQ_NAME>
   <PREQ_DATE xsi:type="xsd:string">20030120</PREQ_DATE>
   <SHORT_TEXT xsi:type="xsd:string">da de da</SHORT_TEXT>
   <MAT_GRP xsi:type="xsd:string">0100</MAT_GRP>
   <PUR_GROUP xsi:type="xsd:string">540</PUR_GROUP>
   <QUANTITY xsi:type="xsd:string">1.00</QUANTITY>
   <UNIT xsi:type="xsd:string">PUT</UNIT>
   <DELIV_DATE xsi:type="xsd:string">2003120</DELIV_DATE>
   <ITEM_CAT xsi:type="xsd:string">9</ITEM_CAT>
   <SPEC_STOCK xsi:type="xsd:string">K</SPEC_STOCK>
   <MATERIAL xsi:type="xsd:string"></MATERIAL>
   <TRACKINGNO xsi:type="xsd:string"></TRACKINGNO>
   <GR_PR_TIME xsi:type="xsd:string"></GR_PR_TIME>
   <C_AMT_BAPI xsi:type="xsd:string">100.00</C_AMT_BAPI>
   <PRICE_UNIT xsi:type="xsd:string"></PRICE_UNIT>
   <DES_VENDOR xsi:type="xsd:string"></DES_VENDOR>
   <SERIAL_NO xsi:type="xsd:string">01</SERIAL_NO>
   <CREATED_ON xsi:type="xsd:string">20030120</CREATED_ON>
   <G_L_ACCT xsi:type="xsd:string">4703000</G_L_ACCT>
   <COST_CTR xsi:type="xsd:string">540014</COST_CTR>
   <GR_RCPT xsi:type="xsd:string">123</GR_RCPT>
   <UNLOAD_PT xsi:type="xsd:string"></UNLOAD_PT>
   <PCKG_NO xsi:type="xsd:string">0000000001</PCKG_NO>
   <SERVICE_QTY xsi:type="xsd:string">650.000</SERVICE_QTY>
   <BASE_UOM xsi:type="xsd:string">H</BASE_UOM>
   <GR_PRICE xsi:type="xsd:string">1000.0000</GR_PRICE>
   <SERVICE_TEXT xsi:type="xsd:string"></SERVICE_TEXT>
  </multiRef>
 </soapenv:Body>
</soapenv:Envelope>

I dont actually have a request to not use multiRef yet, but can see it
coming.  Can anyone see why the call

    call.setProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);

isn't preventing the use of multiRef elements?

cheers
dim


Reply via email to