axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From IdRatherBeSailing <barcagrande2...@yahoo.com>
Subject Does AXIS support Doc/Literal no-arg, empty body operations/messages?
Date Thu, 08 Jun 2006 16:32:30 GMT

Someone here was trying to hit a new service another
group built (with a non-AXIS service producer) where
one of the operations is defined as a no-arg method,
with an empty <wsdl:message> for an input (as opposed
to a message that points to an empty schema element).

Such services expect an empty <SOAP:Body/> element,
with no IN params (ie, not wrapped style).   But AXIS
(1.2.1, 1.3 and 1.4) appear to send the operation name
and op namespace as a child of the Body, if no IN
params are defined or passed in the Call.

I reproduced this with AXIS (1.2.1, 1.3 and 1.4) with
the SOAP Builders Interop Round3 echoVoid test, using
the wsdl and code provided with the AXIS source under
test/wsdl/interop3/docLit  (just the echoVoid part of
the test - the echoStringArray wasn't building
correctly with the build script provided):

Here's the envelope AXIS produces for that echoVoid
service, as built with the build script provided with
the AXIS 1.x source drops, under
test/wsdl/interop3/docLit:

<?xml version="1.0" encoding="UTF-8"?>
<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>
<echoVoid
xmlns="http://soapinterop.org/WSDLInteropTestDocLit"/>
</soapenv:Body>
</soapenv:Envelope>

and here's the SOAP envelope the service expects and
actually works with:

<?xml version="1.0" encoding="UTF-8"?>
<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></soapenv:Body>
</soapenv:Envelope>

Note, after building and running this echoVoid test by
hand with all 3 versions of AXIS, I noticed that the
overall ant build script for the tests tree explicitly
excludes the interop3 tree of tests, so I'm wondering
if this is a known problem? (didn't see anything
obvious when searching JIRA, or Google).

Note:  There is explicit code in AXIS' RPCProvider for
accepting incoming Doc/Literal web services with an
empty body, so it's obviously supported on the
inbound/producer side - I just don't know if it's well
supported on the outbound side (and if so, what would
one change in the setup of the Call object in order to
get the right non-wrapped empty-body behavior?).

So, does AXIS 1.x support calling a Doc/Literal
operation with an empty SOAP Body (non-wrapped), when
the wsdl input message is defined as empty?
<wsdl:message name="echoVoid"/>

References:
http://www.whitemesa.com/r3/interop3.html
http://www.whitemesa.com/r3/InteropTestDocLit.wsdl
And in the source drops (for 1.2.1, 1.3 and 1.4):
axis-1_4\test\wsdl\interop3\docLit\interoptestdoclit.wsdl

Thanks in advance for any insight/advice on this one...

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message