Worked for me when i set that property on call.getMessageContext(). --sudhir
----- Original Message ----- From: "Dmitri Colebatch" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Sunday, February 23, 2003 3:26 AM Subject: disable multirefs in client request > 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 > > >