Hi
I am using Axis 1.1 to call a wrapped service.
I have a simple Java class
public class Test
{
�public TestResponse callMethod( String method,
String[] params )
�{
��return( null );
�}
}The wsdl for this Java class was produced using org.apache.axis.wsdl.Java2WSDL, the options --style WRAPPED --use LITERAL specified. The client stub and server impl were produced using org.apache.axis.wsdl.WSDL2Java. When the service is called the following SOAP request and AXIS fault response are produced :- � <?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> � <callMethod xmlns="http://wrapped.test.com"> �� <method xmlns="">test</method> �� <params xsi:type="Array" soapenc:arrayType="xsd:string[0]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns=""/> � </callMethod> �</soapenv:Body> </soapenv:Envelope> <?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:Fault> �� <faultcode>soapenv:Server.userException</faultcode> �� <faultstring>org.xml.sax.SAXException: No deserializer defined for array type {http://www.w3.org/2001/XMLSchema}string</faultstring> �� <detail/> � </soapenv:Fault> �</soapenv:Body> </soapenv:Envelope> Firstly, I am a little confused why when --use LITERAL is specified to Java2WSDL that the string array is still SOAP encoded ?. I have seem some debate on this issue recently. � Secondly, the problem I am seeing appears to be caused by the attribute xsi:type="Array" on the <params> element. The value "Array" is not indicated to be in the http://schemas.xmlsoap.org/soap/encoding/" namespace using the defined "soapenc" prefix. On further investigation this may be caused by a what appears to be a bug in the class org.apache.axis.utils.NStack. The stack believes that "http://schemas.xmlsoap.org/soap/encoding/" namespace is the default namespace and hence does not require a prefix. This only occurs at the point when this attribute is serialized. � I would appreciate your thoughts/advice, Is this a bug ? am I doing something wrong ? � Thanks Steve __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
