Call.getOutputParams() not returning the first parameter in my soap response

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Call.getOutputParams() not returning the first parameter in my soap response

Jeff Rodriguez
Here's the SOAP:
<SOAP-ENV:Envelope
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:si="http://soapinterop.org/xsd">
  <SOAP-ENV:Body>
    <ns1:getStatusResponse
xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
      <status xsi:type="xsd:string">ok</status>
      <performance xsi:type="xsd:double">0</performance>
      <comment xsi:type="xsd:string">Blah!</comment>
      <last xsi:type="xsd:unsignedInt">1115329464</last>
    </ns1:getStatusResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

With the code:
Map<String, String> output = callGetStatus.getOutputParams();
System.out.println(output.toString());

I get:
{last=1115329464, performance=0.0, comment=Blah!}

When I call callGetStatus.invoke(), it seems as I'm getting the first
value in the response, in this case the status parameter.

I think this is inherenlty bad, since the order could potentially
change, correct?

What's The Right Way(tm) to get all my parameters into that map?
--
Jeffrey Alan Rodriguez
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Call.getOutputParams() not returning the first parameter in my soap response

Jeff Rodriguez
Waited a couple days, posting another response here before I ask dev :)

Thanks,

Jeff

On 5/5/05, Jeff Rodriguez <[hidden email]> wrote:

> Here's the SOAP:
> <SOAP-ENV:Envelope
>     SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>     xmlns:si="http://soapinterop.org/xsd">
>   <SOAP-ENV:Body>
>     <ns1:getStatusResponse
> xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
>       <status xsi:type="xsd:string">ok</status>
>       <performance xsi:type="xsd:double">0</performance>
>       <comment xsi:type="xsd:string">Blah!</comment>
>       <last xsi:type="xsd:unsignedInt">1115329464</last>
>     </ns1:getStatusResponse>
>   </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> With the code:
> Map<String, String> output = callGetStatus.getOutputParams();
> System.out.println(output.toString());
>
> I get:
> {last=1115329464, performance=0.0, comment=Blah!}
>
> When I call callGetStatus.invoke(), it seems as I'm getting the first
> value in the response, in this case the status parameter.
>
> I think this is inherenlty bad, since the order could potentially
> change, correct?
>
> What's The Right Way(tm) to get all my parameters into that map?
> --
> Jeffrey Alan Rodriguez
> [hidden email]
>


--
Jeffrey Alan Rodriguez
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Call.getOutputParams() not returning the first parameter in my soap response

Anne Thomas Manes
FYI: Sending a request to axis-dev won't get you a better response
than sending it to axis-user. Axis-user is the right place to send
user questions.

Perhaps you could provide a bit more information, though. (WSDL, WSDD,
more complete client source)

Anne

On 5/8/05, Jeff Rodriguez <[hidden email]> wrote:

> Waited a couple days, posting another response here before I ask dev :)
>
> Thanks,
>
> Jeff
>
> On 5/5/05, Jeff Rodriguez <[hidden email]> wrote:
> > Here's the SOAP:
> > <SOAP-ENV:Envelope
> >     SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> >     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> >     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >     xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> >     xmlns:si="http://soapinterop.org/xsd">
> >   <SOAP-ENV:Body>
> >     <ns1:getStatusResponse
> > xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
> >       <status xsi:type="xsd:string">ok</status>
> >       <performance xsi:type="xsd:double">0</performance>
> >       <comment xsi:type="xsd:string">Blah!</comment>
> >       <last xsi:type="xsd:unsignedInt">1115329464</last>
> >     </ns1:getStatusResponse>
> >   </SOAP-ENV:Body>
> > </SOAP-ENV:Envelope>
> >
> > With the code:
> > Map<String, String> output = callGetStatus.getOutputParams();
> > System.out.println(output.toString());
> >
> > I get:
> > {last=1115329464, performance=0.0, comment=Blah!}
> >
> > When I call callGetStatus.invoke(), it seems as I'm getting the first
> > value in the response, in this case the status parameter.
> >
> > I think this is inherenlty bad, since the order could potentially
> > change, correct?
> >
> > What's The Right Way(tm) to get all my parameters into that map?
> > --
> > Jeffrey Alan Rodriguez
> > [hidden email]
> >
>
> --
> Jeffrey Alan Rodriguez
> [hidden email]
>
Reply | Threaded
Open this post in threaded view
|

Re: Call.getOutputParams() not returning the first parameter in my soap response

Jeff Rodriguez
_WSDL_
<definitions targetNamespace="urn:mwsWSDL"
xmlns="http://schemas.xmlsoap.org/wsdl/"
wsdl="http://schemas.xmlsoap.org/wsdl/"
soap="http://schemas.xmlsoap.org/wsdl/soap/" tns="urn:mwsWSDL"
si="http://soapinterop.org/xsd"
SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xsi="http://www.w3.org/2001/XMLSchema-instance"
xsd="http://www.w3.org/2001/XMLSchema"
SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><types><schema
targetNamespace="urn:mwsWSDL">
 <import namespace="http://schemas.xmlsoap.org/soap/encoding/"></import>
 <import namespace="http://schemas.xmlsoap.org/wsdl/"></import>
</schema>
</types><message name="reportInRequest"><part type="xsd:string"
name="ip"></part><part type="xsd:string" name="hostname"></part><part
type="xsd:string" name="service"></part><part type="xsd:string"
name="status"></part><part type="xsd:string"
name="comment"></part><part type="xsd:unsignedInt"
name="heartbeat"></part><part type="xsd:double"
name="performance"></part></message><message
name="reportInResponse"><part type="xsd:string"
name="lastStatus"></part></message><message
name="getStatusRequest"><part type="xsd:string"
name="hostname"></part><part type="xsd:string"
name="service"></part></message><message
name="getStatusResponse"><part type="xsd:string"
name="status"></part><part type="xsd:double"
name="performance"></part><part type="xsd:string"
name="comment"></part><part type="xsd:unsignedInt"
name="last"></part></message><portType
name="MonitorWebServiceWSDLPortType"><operation
name="reportIn"><documentation>Service status/performance report
in</documentation><input message="tns:reportInRequest"><output
message="tns:reportInResponse"></output></operation><operation
name="getStatus"><documentation>Get service
status/performance</documentation><input
message="tns:getStatusRequest"><output
message="tns:getStatusResponse"></output></operation></portType><binding
type="tns:MonitorWebServiceWSDLPortType"
name="MonitorWebServiceWSDLBinding"><binding
transport="http://schemas.xmlsoap.org/soap/http"
style="rpc"></binding><operation name="reportIn"><operation
style="rpc" soapAction="urn:mwsWSDL#reportIn"></operation><input><body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:mwsWSDL" use="encoded"></body><output><body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:mwsWSDL"
use="encoded"></body></output></operation><operation
name="getStatus"><operation style="rpc"
soapAction="urn:mwsWSDL#getStatus"></operation><input><body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:mwsWSDL" use="encoded"></body><output><body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:mwsWSDL"
use="encoded"></body></output></operation></binding><service
name="MonitorWebServiceWSDL"><port
binding="tns:MonitorWebServiceWSDLBinding"
name="MonitorWebServiceWSDLPort"><address
location="http://mws.mgmt.mesa1.gdg/index.php"></address></port></service></definitions>


_As much client source as I can give_
        callGetStatus = (Call) new Service().createCall();
        callGetStatus.setTargetEndpointAddress( new java.net.URL(url));
        callGetStatus.setOperationName(new QName("getStatus"));

        /* Add parameter mappings to callGetStatus */
        callGetStatus.addParameter("hostname",
                org.apache.axis.Constants.XSD_STRING,
                javax.xml.rpc.ParameterMode.IN);
       
        callGetStatus.addParameter("service",
                org.apache.axis.Constants.XSD_STRING,
                javax.xml.rpc.ParameterMode.IN);
       
        callGetStatus.addParameter("status",
                org.apache.axis.Constants.XSD_STRING,
                javax.xml.rpc.ParameterMode.OUT);
       
        callGetStatus.addParameter("performance",
                org.apache.axis.Constants.XSD_DOUBLE,
                javax.xml.rpc.ParameterMode.OUT);
       
        callGetStatus.addParameter("comment",
                org.apache.axis.Constants.XSD_STRING,
                javax.xml.rpc.ParameterMode.OUT);
       
        callGetStatus.addParameter("last",
                org.apache.axis.Constants.XSD_UNSIGNEDINT,
                javax.xml.rpc.ParameterMode.OUT);

        callGetStatus.setReturnType(org.apache.axis.Constants.XSD_STRING);

        /* Call SOAP method */
        String rv = (String) callGetStatus.invoke(new Object[]
{hostname, service});
       
        /* Get output parameters */
        Map output = callGetStatus.getOutputParams();
        System.out.println(output.toString());

_Output_
{last=1115653423, performance=0.0, comment=}

Thanks,
Jeff

On 5/8/05, Anne Thomas Manes <[hidden email]> wrote:

> FYI: Sending a request to axis-dev won't get you a better response
> than sending it to axis-user. Axis-user is the right place to send
> user questions.
>
> Perhaps you could provide a bit more information, though. (WSDL, WSDD,
> more complete client source)
>
> Anne
>
> On 5/8/05, Jeff Rodriguez <[hidden email]> wrote:
> > Waited a couple days, posting another response here before I ask dev :)
> >
> > Thanks,
> >
> > Jeff
> >
> > On 5/5/05, Jeff Rodriguez <[hidden email]> wrote:
> > > Here's the SOAP:
> > > <SOAP-ENV:Envelope
> > >     SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > >     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > >     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > >     xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> > >     xmlns:si="http://soapinterop.org/xsd">
> > >   <SOAP-ENV:Body>
> > >     <ns1:getStatusResponse
> > > xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
> > >       <status xsi:type="xsd:string">ok</status>
> > >       <performance xsi:type="xsd:double">0</performance>
> > >       <comment xsi:type="xsd:string">Blah!</comment>
> > >       <last xsi:type="xsd:unsignedInt">1115329464</last>
> > >     </ns1:getStatusResponse>
> > >   </SOAP-ENV:Body>
> > > </SOAP-ENV:Envelope>
> > >
> > > With the code:
> > > Map<String, String> output = callGetStatus.getOutputParams();
> > > System.out.println(output.toString());
> > >
> > > I get:
> > > {last=1115329464, performance=0.0, comment=Blah!}
> > >
> > > When I call callGetStatus.invoke(), it seems as I'm getting the first
> > > value in the response, in this case the status parameter.
> > >
> > > I think this is inherenlty bad, since the order could potentially
> > > change, correct?
> > >
> > > What's The Right Way(tm) to get all my parameters into that map?
> > > --
> > > Jeffrey Alan Rodriguez
> > > [hidden email]
> > >
> >
> > --
> > Jeffrey Alan Rodriguez
> > [hidden email]
> >
>


--
Jeffrey Alan Rodriguez
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Call.getOutputParams() not returning the first parameter in my soap response

Anne Thomas Manes
And what version of Axis are you using?

On 5/9/05, Jeff Rodriguez <[hidden email]> wrote:

> _WSDL_
> <definitions targetNamespace="urn:mwsWSDL"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> wsdl="http://schemas.xmlsoap.org/wsdl/"
> soap="http://schemas.xmlsoap.org/wsdl/soap/" tns="urn:mwsWSDL"
> si="http://soapinterop.org/xsd"
> SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsd="http://www.w3.org/2001/XMLSchema"
> SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><types><schema
> targetNamespace="urn:mwsWSDL">
>  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"></import>
>  <import namespace="http://schemas.xmlsoap.org/wsdl/"></import>
> </schema>
> </types><message name="reportInRequest"><part type="xsd:string"
> name="ip"></part><part type="xsd:string" name="hostname"></part><part
> type="xsd:string" name="service"></part><part type="xsd:string"
> name="status"></part><part type="xsd:string"
> name="comment"></part><part type="xsd:unsignedInt"
> name="heartbeat"></part><part type="xsd:double"
> name="performance"></part></message><message
> name="reportInResponse"><part type="xsd:string"
> name="lastStatus"></part></message><message
> name="getStatusRequest"><part type="xsd:string"
> name="hostname"></part><part type="xsd:string"
> name="service"></part></message><message
> name="getStatusResponse"><part type="xsd:string"
> name="status"></part><part type="xsd:double"
> name="performance"></part><part type="xsd:string"
> name="comment"></part><part type="xsd:unsignedInt"
> name="last"></part></message><portType
> name="MonitorWebServiceWSDLPortType"><operation
> name="reportIn"><documentation>Service status/performance report
> in</documentation><input message="tns:reportInRequest"><output
> message="tns:reportInResponse"></output></operation><operation
> name="getStatus"><documentation>Get service
> status/performance</documentation><input
> message="tns:getStatusRequest"><output
> message="tns:getStatusResponse"></output></operation></portType><binding
> type="tns:MonitorWebServiceWSDLPortType"
> name="MonitorWebServiceWSDLBinding"><binding
> transport="http://schemas.xmlsoap.org/soap/http"
> style="rpc"></binding><operation name="reportIn"><operation
> style="rpc" soapAction="urn:mwsWSDL#reportIn"></operation><input><body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:mwsWSDL" use="encoded"></body><output><body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:mwsWSDL"
> use="encoded"></body></output></operation><operation
> name="getStatus"><operation style="rpc"
> soapAction="urn:mwsWSDL#getStatus"></operation><input><body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:mwsWSDL" use="encoded"></body><output><body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:mwsWSDL"
> use="encoded"></body></output></operation></binding><service
> name="MonitorWebServiceWSDL"><port
> binding="tns:MonitorWebServiceWSDLBinding"
> name="MonitorWebServiceWSDLPort"><address
> location="http://mws.mgmt.mesa1.gdg/index.php"></address></port></service></definitions>
>
> _As much client source as I can give_
>         callGetStatus = (Call) new Service().createCall();
>         callGetStatus.setTargetEndpointAddress( new java.net.URL(url));
>         callGetStatus.setOperationName(new QName("getStatus"));
>
>         /* Add parameter mappings to callGetStatus */
>         callGetStatus.addParameter("hostname",
>                 org.apache.axis.Constants.XSD_STRING,
>                 javax.xml.rpc.ParameterMode.IN);
>
>         callGetStatus.addParameter("service",
>                 org.apache.axis.Constants.XSD_STRING,
>                 javax.xml.rpc.ParameterMode.IN);
>
>         callGetStatus.addParameter("status",
>                 org.apache.axis.Constants.XSD_STRING,
>                 javax.xml.rpc.ParameterMode.OUT);
>
>         callGetStatus.addParameter("performance",
>                 org.apache.axis.Constants.XSD_DOUBLE,
>                 javax.xml.rpc.ParameterMode.OUT);
>
>         callGetStatus.addParameter("comment",
>                 org.apache.axis.Constants.XSD_STRING,
>                 javax.xml.rpc.ParameterMode.OUT);
>
>         callGetStatus.addParameter("last",
>                 org.apache.axis.Constants.XSD_UNSIGNEDINT,
>                 javax.xml.rpc.ParameterMode.OUT);
>
>         callGetStatus.setReturnType(org.apache.axis.Constants.XSD_STRING);
>
>         /* Call SOAP method */
>         String rv = (String) callGetStatus.invoke(new Object[]
> {hostname, service});
>
>         /* Get output parameters */
>         Map output = callGetStatus.getOutputParams();
>         System.out.println(output.toString());
>
> _Output_
> {last=1115653423, performance=0.0, comment=}
>
> Thanks,
> Jeff
>
> On 5/8/05, Anne Thomas Manes <[hidden email]> wrote:
> > FYI: Sending a request to axis-dev won't get you a better response
> > than sending it to axis-user. Axis-user is the right place to send
> > user questions.
> >
> > Perhaps you could provide a bit more information, though. (WSDL, WSDD,
> > more complete client source)
> >
> > Anne
> >
> > On 5/8/05, Jeff Rodriguez <[hidden email]> wrote:
> > > Waited a couple days, posting another response here before I ask dev :)
> > >
> > > Thanks,
> > >
> > > Jeff
> > >
> > > On 5/5/05, Jeff Rodriguez <[hidden email]> wrote:
> > > > Here's the SOAP:
> > > > <SOAP-ENV:Envelope
> > > >     SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > > >     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > > >     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > >     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > >     xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> > > >     xmlns:si="http://soapinterop.org/xsd">
> > > >   <SOAP-ENV:Body>
> > > >     <ns1:getStatusResponse
> > > > xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
> > > >       <status xsi:type="xsd:string">ok</status>
> > > >       <performance xsi:type="xsd:double">0</performance>
> > > >       <comment xsi:type="xsd:string">Blah!</comment>
> > > >       <last xsi:type="xsd:unsignedInt">1115329464</last>
> > > >     </ns1:getStatusResponse>
> > > >   </SOAP-ENV:Body>
> > > > </SOAP-ENV:Envelope>
> > > >
> > > > With the code:
> > > > Map<String, String> output = callGetStatus.getOutputParams();
> > > > System.out.println(output.toString());
> > > >
> > > > I get:
> > > > {last=1115329464, performance=0.0, comment=Blah!}
> > > >
> > > > When I call callGetStatus.invoke(), it seems as I'm getting the first
> > > > value in the response, in this case the status parameter.
> > > >
> > > > I think this is inherenlty bad, since the order could potentially
> > > > change, correct?
> > > >
> > > > What's The Right Way(tm) to get all my parameters into that map?
> > > > --
> > > > Jeffrey Alan Rodriguez
> > > > [hidden email]
> > > >
> > >
> > > --
> > > Jeffrey Alan Rodriguez
> > > [hidden email]
> > >
> >
>
> --
> Jeffrey Alan Rodriguez
> [hidden email]
>
Reply | Threaded
Open this post in threaded view
|

Re: Call.getOutputParams() not returning the first parameter in my soap response

Jeff Rodriguez
Up until you asked:
Apache Axis 1.2RC3 Feb 28, 2005 (10:15:14 EST)

Now:
Apache Axis 1.2 May 03, 2005 (02:20:24 EDT)

Still having the same problem :(

Thanks,
Jeff

On 5/9/05, Anne Thomas Manes <[hidden email]> wrote:

> And what version of Axis are you using?
>
> On 5/9/05, Jeff Rodriguez <[hidden email]> wrote:
> > _WSDL_
> > <definitions targetNamespace="urn:mwsWSDL"
> > xmlns="http://schemas.xmlsoap.org/wsdl/"
> > wsdl="http://schemas.xmlsoap.org/wsdl/"
> > soap="http://schemas.xmlsoap.org/wsdl/soap/" tns="urn:mwsWSDL"
> > si="http://soapinterop.org/xsd"
> > SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> > xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xsd="http://www.w3.org/2001/XMLSchema"
> > SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><types><schema
> > targetNamespace="urn:mwsWSDL">
> >  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"></import>
> >  <import namespace="http://schemas.xmlsoap.org/wsdl/"></import>
> > </schema>
> > </types><message name="reportInRequest"><part type="xsd:string"
> > name="ip"></part><part type="xsd:string" name="hostname"></part><part
> > type="xsd:string" name="service"></part><part type="xsd:string"
> > name="status"></part><part type="xsd:string"
> > name="comment"></part><part type="xsd:unsignedInt"
> > name="heartbeat"></part><part type="xsd:double"
> > name="performance"></part></message><message
> > name="reportInResponse"><part type="xsd:string"
> > name="lastStatus"></part></message><message
> > name="getStatusRequest"><part type="xsd:string"
> > name="hostname"></part><part type="xsd:string"
> > name="service"></part></message><message
> > name="getStatusResponse"><part type="xsd:string"
> > name="status"></part><part type="xsd:double"
> > name="performance"></part><part type="xsd:string"
> > name="comment"></part><part type="xsd:unsignedInt"
> > name="last"></part></message><portType
> > name="MonitorWebServiceWSDLPortType"><operation
> > name="reportIn"><documentation>Service status/performance report
> > in</documentation><input message="tns:reportInRequest"><output
> > message="tns:reportInResponse"></output></operation><operation
> > name="getStatus"><documentation>Get service
> > status/performance</documentation><input
> > message="tns:getStatusRequest"><output
> > message="tns:getStatusResponse"></output></operation></portType><binding
> > type="tns:MonitorWebServiceWSDLPortType"
> > name="MonitorWebServiceWSDLBinding"><binding
> > transport="http://schemas.xmlsoap.org/soap/http"
> > style="rpc"></binding><operation name="reportIn"><operation
> > style="rpc" soapAction="urn:mwsWSDL#reportIn"></operation><input><body
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > namespace="urn:mwsWSDL" use="encoded"></body><output><body
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > namespace="urn:mwsWSDL"
> > use="encoded"></body></output></operation><operation
> > name="getStatus"><operation style="rpc"
> > soapAction="urn:mwsWSDL#getStatus"></operation><input><body
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > namespace="urn:mwsWSDL" use="encoded"></body><output><body
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > namespace="urn:mwsWSDL"
> > use="encoded"></body></output></operation></binding><service
> > name="MonitorWebServiceWSDL"><port
> > binding="tns:MonitorWebServiceWSDLBinding"
> > name="MonitorWebServiceWSDLPort"><address
> > location="http://mws.mgmt.mesa1.gdg/index.php"></address></port></service></definitions>
> >
> > _As much client source as I can give_
> >         callGetStatus = (Call) new Service().createCall();
> >         callGetStatus.setTargetEndpointAddress( new java.net.URL(url));
> >         callGetStatus.setOperationName(new QName("getStatus"));
> >
> >         /* Add parameter mappings to callGetStatus */
> >         callGetStatus.addParameter("hostname",
> >                 org.apache.axis.Constants.XSD_STRING,
> >                 javax.xml.rpc.ParameterMode.IN);
> >
> >         callGetStatus.addParameter("service",
> >                 org.apache.axis.Constants.XSD_STRING,
> >                 javax.xml.rpc.ParameterMode.IN);
> >
> >         callGetStatus.addParameter("status",
> >                 org.apache.axis.Constants.XSD_STRING,
> >                 javax.xml.rpc.ParameterMode.OUT);
> >
> >         callGetStatus.addParameter("performance",
> >                 org.apache.axis.Constants.XSD_DOUBLE,
> >                 javax.xml.rpc.ParameterMode.OUT);
> >
> >         callGetStatus.addParameter("comment",
> >                 org.apache.axis.Constants.XSD_STRING,
> >                 javax.xml.rpc.ParameterMode.OUT);
> >
> >         callGetStatus.addParameter("last",
> >                 org.apache.axis.Constants.XSD_UNSIGNEDINT,
> >                 javax.xml.rpc.ParameterMode.OUT);
> >
> >         callGetStatus.setReturnType(org.apache.axis.Constants.XSD_STRING);
> >
> >         /* Call SOAP method */
> >         String rv = (String) callGetStatus.invoke(new Object[]
> > {hostname, service});
> >
> >         /* Get output parameters */
> >         Map output = callGetStatus.getOutputParams();
> >         System.out.println(output.toString());
> >
> > _Output_
> > {last=1115653423, performance=0.0, comment=}
> >
> > Thanks,
> > Jeff
> >
> > On 5/8/05, Anne Thomas Manes <[hidden email]> wrote:
> > > FYI: Sending a request to axis-dev won't get you a better response
> > > than sending it to axis-user. Axis-user is the right place to send
> > > user questions.
> > >
> > > Perhaps you could provide a bit more information, though. (WSDL, WSDD,
> > > more complete client source)
> > >
> > > Anne
> > >
> > > On 5/8/05, Jeff Rodriguez <[hidden email]> wrote:
> > > > Waited a couple days, posting another response here before I ask dev :)
> > > >
> > > > Thanks,
> > > >
> > > > Jeff
> > > >
> > > > On 5/5/05, Jeff Rodriguez <[hidden email]> wrote:
> > > > > Here's the SOAP:
> > > > > <SOAP-ENV:Envelope
> > > > >     SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > > > >     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > > > >     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > > >     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > >     xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> > > > >     xmlns:si="http://soapinterop.org/xsd">
> > > > >   <SOAP-ENV:Body>
> > > > >     <ns1:getStatusResponse
> > > > > xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
> > > > >       <status xsi:type="xsd:string">ok</status>
> > > > >       <performance xsi:type="xsd:double">0</performance>
> > > > >       <comment xsi:type="xsd:string">Blah!</comment>
> > > > >       <last xsi:type="xsd:unsignedInt">1115329464</last>
> > > > >     </ns1:getStatusResponse>
> > > > >   </SOAP-ENV:Body>
> > > > > </SOAP-ENV:Envelope>
> > > > >
> > > > > With the code:
> > > > > Map<String, String> output = callGetStatus.getOutputParams();
> > > > > System.out.println(output.toString());
> > > > >
> > > > > I get:
> > > > > {last=1115329464, performance=0.0, comment=Blah!}
> > > > >
> > > > > When I call callGetStatus.invoke(), it seems as I'm getting the first
> > > > > value in the response, in this case the status parameter.
> > > > >
> > > > > I think this is inherenlty bad, since the order could potentially
> > > > > change, correct?
> > > > >
> > > > > What's The Right Way(tm) to get all my parameters into that map?
> > > > > --
> > > > > Jeffrey Alan Rodriguez
> > > > > [hidden email]
> > > > >
> > > >
> > > > --
> > > > Jeffrey Alan Rodriguez
> > > > [hidden email]
> > > >
> > >
> >
> > --
> > Jeffrey Alan Rodriguez
> > [hidden email]
> >
>


--
Jeffrey Alan Rodriguez
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Call.getOutputParams() not returning the first parameter in my soap response

Jeff Rodriguez
Decided to take a peek into the code (for different reasons
actually!). It looks like at
/src/org/apache/axis/client/Call.java:2502 the first parameter isn't
inserted in the HashMap. This is probably just an oversight, I'll
submit a patch for this.

--
Jeffrey Alan Rodriguez
[hidden email]