You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by cm...@integro.com on 2002/11/17 19:27:30 UTC

RPC Service with Encoded Input and Literal Output

Does anyone know if it is possible to configure Axis with an RPC style 
service that has an "encoded" input and a "literal" output.  Here's an 
example .wsdl snippet of what I'm trying to do:

  <binding name='NetworkNodeBinding' type='tns:NetworkNodePortType' >

    <soap:binding style='rpc' 
transport='http://schemas.xmlsoap.org/soap/http' />

    <operation name='SQLQuery' >
      <soap:operation soapAction='' />
      <input>
        <soap:body use='encoded' namespace='urn:MyNamespace' 
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' />
      </input>
      <output>
        <soap:body use='literal' namespace='urn:MyNamespace' 
encodingStyle='' />
      </output>
    </operation>
</binding>

WSDL2Java generates the following service tag:

<service name="NetworkNodePortType" provider="java:RPC" style="rpc" 
use="literal">

However, this causes my input to be treated as literal also (thus causing 
clients expecting it to be "encoded" to fail).  I modified the use to be 
"encoded" to get most of my methods working.  Is there a way to configure 
the service to use="mixed"  or something then specify for each 
input/output whether it is encoded or literal?

I've messed around with making my return type for my method Element[] and 
changing the Service Description in my generated skeleton class, but it 
still treats the result as "encoded"?