Hi,

Has anyone got INOUT parameters working with Document/Wrapped before or is
only a single return object allowed ? I.e. insterad of having

<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>
                <testStringResponse xmlns="Garage/TestService1">
                        <testStringReturn xsi:nil="true"/>
                        <provider_outParam
xmlns="">inoutString</provider_outParam>
                        <provider_inoutParam
xmlns="">InString</provider_inoutParam>
                </testStringResponse>
        </soapenv:Body>
</soapenv:Envelope>

Do I need to use something like;

<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>
                <testStringResponse xmlns="Garage/TestService1">
                        <testStringReturn>
                                ... Object containing return type and out
and inout params 
                        </testSringReturn>
                </testStringResponse>
        </soapenv:Body>
</soapenv:Envelope>

Thanks,

Brian

-----Original Message-----
From: Brian Dillon (ext. 944) [mailto:[EMAIL PROTECTED] 
Sent: 29 November 2005 8:50
To: [email protected]
Subject: Wrapped INOUT Parameters

Hi,

I am using Axis 1.2 and am looking into coverting from using SOAP
rpc/encoded to using wrapped/literal. For basic operations this seems to
work fine. However If I have INOUT parameters I get exceptions similar to;

The exception [org.xml.sax.SAXException: Deserializing parameter
'provider_outParam':  could not find deserializer for type xsd:string] was
caused by the exception [Deserializing parameter 'provider_outParam':  could
not find deserializer for type xsd:string]., Ta Exception info,Exception
Class=class com.fineos.ta.services.ServiceException,Root cause ID=2,Root
cause host=opc122,Localized message=SAXException: Deserializing parameter
'provider_outParam':  could not find deserializer for type xsd:string
        
The Response XML Message looks like;

<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>
                <testStringResponse xmlns="Garage/TestService1">
                        <testStringReturn xsi:nil="true"/>
                        <provider_outParam
xmlns="">inoutString</provider_outParam>
                        <provider_inoutParam
xmlns="">InString</provider_inoutParam>
                </testStringResponse>
        </soapenv:Body>
</soapenv:Envelope>

The way the axis Client Call abject is set is is;

        org.apache.axis.client.Call soapSrv=
getSOAPService(getServiceProperties().getServiceName());
        String soapSrvName =
"Garage/"+getServiceProperties().getServiceName();
        soapSrv.setOperationName(new QName(soapSrvName,"testString") );
        soapSrv.setOperationStyle("wrapped");
        soapSrv.setOperationUse("literal");

        soapSrv.addParameter("inParam",new QName("xsd:string"),
            javax.xml.rpc.ParameterMode.IN);
        soapSrv.addParameter("provider_outParam",new QName("xsd:string"),
            javax.xml.rpc.ParameterMode.INOUT);
        soapSrv.addParameter("provider_inoutParam",new QName("xsd:string"),
            javax.xml.rpc.ParameterMode.INOUT);
        soapSrv.addParameter("requestContext",
            new QName("ta:RequestContext"),javax.xml.rpc.ParameterMode.IN);
        soapSrv.setReturnType(new QName("xsd:string"));

Is there something else I should be setting up, or do INOUT parameters not
work with Wrapped/literal ?

Thanks,

Brian

**********************************************************************
The information contained in this e-mail is confidential, may be privileged
and is intended only for the user of the recipient named above.  
If you are not the intended recipient or a representative of the intended
recipient, you have received this e-mail in error and must not copy, use or
disclose the contents of this e-mail to anybody else.  If you have received
this e-mail in error, please notify the sender immediately by return e-mail
and permanently delete the copy you received.  
This e-mail has been swept for computer viruses.  However, you should carry
out your own virus checks. 
Registered in Ireland, No. 205721.  http://www.FINEOS.com
**********************************************************************

Reply via email to