[
http://issues.apache.org/jira/browse/AXIS-1308?page=comments#action_12314321 ]
Thomas Boerkel commented on AXIS-1308:
--------------------------------------
I tried with Axis 1.2.1 and... - new problem.
I have set TypeMappingImpl.dotnet_soapenc_bugfix = true; and Axis creates then
xsd:string[] instead of soapenc:string in the WSDL. So far, so good.
But when I call the method from the .NET client, I get the following exception
from Axis:
<faultstring>org.xml.sax.SAXException: Deserializing parameter 'numbers':
could not find deserializer for type
{http://schemas.xmlsoap.org/soap/encoding/}Array
at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:277)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:148)
at
com.apag.p2plus.p2tools.P2plusServer$AxisDispatcher.processMessage(P2plusServer.java:2888)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at
com.apag.p2plus.p2tools.P2plusServer$Connection.handleAxisCall(P2plusServer.java:1902)
at
com.apag.p2plus.p2tools.P2plusServer$Connection.handleRequest(P2plusServer.java:1362)
at
com.apag.p2plus.p2tools.P2plusServer$Connection.run(P2plusServer.java:1221)
> Axis 1.2 beta and .NET 1.1: Problem with arrays
> -----------------------------------------------
>
> Key: AXIS-1308
> URL: http://issues.apache.org/jira/browse/AXIS-1308
> Project: Apache Axis
> Type: Bug
> Components: Basic Architecture
> Versions: 1.2 Beta
> Environment: Windows 2000 server, JDK 1.4.2_03, .NET 1.1, Axis 1.2 Beta
> Reporter: Thomas Boerkel
> Assignee: Glen Daniels
> Fix For: 1.2
> Attachments: SoapTest_11RC2.wsdl, SoapTest_12Beta.wsdl, cdx.wsdl
>
> I was able to return an array from an Axis 1.1 RC2 server to a .NET 1.1
> client without problems.
> With Axis 1.2 beta, the .NET client throws an exception:
> System.InvalidOperationException: There is an error in XMLdocument (5, 5).
> ---> System.InvalidOperationException: The specified type as not recognized:
> name='string', namespace='http://schemas.xmlsoap.org/soap/encoding/', at
> <arrayTestReturn xmlns=''>.
> I don't know, if this is a bug in Axis or .NET, but I think the interop is
> very important, so even a workaround in Axis for a .NET bug should be
> considered, until MS fixes their bug.
> This is the response XML from Axis 1.1 RC2:
> <?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>
> <ns1:arrayTestResponse
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns1="http://p2test.p2plus.apag.com">
> <arrayTestReturn xsi:type="soapenc:Array"
> soapenc:arrayType="xsd:string[3]"
> xmlns:ns2="http://www.w3.org/2002/12/soap-encoding"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
> <item>5</item>
> <item>6</item>
> <item>7</item>
> </arrayTestReturn>
> </ns1:arrayTestResponse>
> </soapenv:Body>
> </soapenv:Envelope>
> And this from Axis 1.2 beta:
> <?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>
> <ns1:arrayTestResponse
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns1="http://p2test.p2plus.apag.com">
> <arrayTestReturn soapenc:arrayType="soapenc:string[3]"
> xsi:type="soapenc:Array"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
> <item xsi:type="soapenc:string">5</item>
> <item xsi:type="soapenc:string">6</item>
> <item xsi:type="soapenc:string">7</item>
> </arrayTestReturn>
> </ns1:arrayTestResponse>
> </soapenv:Body>
> </soapenv:Envelope>
> This is the Java method signature:
> public String[] arrayTest(int[] numbers)
> We do not use deployment and we do not use Tomcat, but something like this:
> axisServer = new AxisServer(new NullProvider());
> axisServer.init();
> msg = new Message(xml);
> msgContext = new MessageContext(axisServer);
> msgContext.setRequestMessage(msg);
> service = getService(completeName);
> msgContext.setService(service);
> axisServer.invoke(msgContext);
> msg = msgContext.getResponseMessage();
> xml= msg.getSOAPPartAsString();
> If I use
> service.setStyle(Style.WRAPPED)
> service.setUse(Use.LITERAL)
> Then this is the response from Axis:
> <?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>
> <arrayTestResponse xmlns="http://p2test.p2plus.apag.com">
> <arrayTestReturn>5</arrayTestReturn>
> <arrayTestReturn>6</arrayTestReturn>
> <arrayTestReturn>7</arrayTestReturn>
> </arrayTestResponse>
> </soapenv:Body>
> </soapenv:Envelope>
> and .NET returns NULL to the client code.
> Attaching Axis 1.1 RC2 WSDL and 1.2 Beta WSDL (almost identical, besides the
> namespace desclaration).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira