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