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
>
>
>