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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
