axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy Micone (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Updated: (AXIS-1308) Axis 1.2 beta and .NET 1.1: Problem with arrays
Date Fri, 03 Dec 2004 17:26:27 GMT
     [ http://nagoya.apache.org/jira/browse/AXIS-1308?page=history ]

Andy Micone updated AXIS-1308:
------------------------------

    Attachment: cdx.wsdl

I'm using a WSDL but it wasn't generated from a .NET service, it was supplied to us as was
the .Net client that consumes it. WSDL2Java under Axis 1.1 generates server stubs that correctly
answer the .NET client. Debates about what is the correct implementation aside, I think I'm
in the same boat as a lot of users that just need to create services to be consumed by .NET
clients in the simplest way possible. 

I do have a suggestion, if you look below at my deploy.wsdd snippet you'll note that the serializer
and deserializer for array objects are explicitly defined. Why not have another serializer/deserializer
class to handle the case where you prefer the xsd types over the soap encoding types and then
put a switch on WSDL2Java supported by the ant task to write this into the deploy.wsdd for
you. I think that would fit the scenario that many users are in where the main reason we are
using Axis is to interoperate with other platforms and the bulk of our work should be on the
back-end processing and not the data we are pushing across the transom.

      <typeMapping
        xmlns:ns="http://exchangenetwork.net/schema/v1.0/node.xsd"
        qname="ns:ArrayOfstring"
        type="java:java.lang.String[]"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />

> Axis 1.2 beta and .NET 1.1: Problem with arrays
> -----------------------------------------------
>
>          Key: AXIS-1308
>          URL: http://nagoya.apache.org/jira/browse/AXIS-1308
>      Project: 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
>      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://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


Mime
View raw message