[ 
http://issues.apache.org/jira/browse/AXIS-1308?page=comments#action_12314607 ] 

Thomas Boerkel commented on AXIS-1308:
--------------------------------------

Apparently, we had to add something to our code (we interface directly to Axis 
from our own HTTP server and do not use any deployment), to make it work AT ALL 
with Axis 1.2.1. This should be written in some changes document for 1.2.x.

After adding this code, TypeMapping worked again:
    typeMappingRegistry = new TypeMappingRegistryImpl(true); // global variable
    // ...
    msgContext.setTypeMappingRegistry(typeMappingRegistry);

I hope, this is the right way/correct.

Also, we had to add this for .NET 1.1 as a client:
    TypeMappingImpl.dotnet_soapenc_bugfix = true;


Now, everything seems to work OK again. The WSDLs look almost identical to Axis 
1.1.

> 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: Davanum Srinivas
>      Fix For: 1.2
>  Attachments: SoapTest.WSDL, 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

Reply via email to