axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Magnus Sandberg <magnus.sandb...@depicta.com>
Subject RE: Interoperability/.NET/Arrays ... and more [long]
Date Tue, 02 Mar 2004 08:51:01 GMT
I agree that that reporting bugs is the way to go BUT ...

... I think it is equal important to find workarounds for the
stable release. I have seen the questions being posted again again on
the axis-user list and in other places but with no answers and since I
had worked out what caused the errors I thought is was time to report
the solutions/workarounds for them.

/Magnus

On Tue, 2004-03-02 at 04:12, Davanum Srinivas wrote:
> Folks,
> 
> If you find a problem, PLEASE try latest CVS, IF it still exists, OPEN a bug report,
WITH a sample
> that can be used to recreate the problem. The ONLY way we can fix problems is IF we know
about it
> and we can RECREATE it.
> 
> thanks,
> dims
> 
> --- Vivek Nagulapati <vivek_nagulapati@hotmail.com> wrote:
> > Hello Magnus,
> > 
> > Thanks for sharing the information. It really helped me!!
> > 
> > Magnus, as you said that Axis would not support Document/literal with .NET 
> > clients what can be the other option to bypass the serializing/deserializing 
> > phase of Axis?
> > 
> > When you say that Axis does not support Doc/Lit, do you mean to say that 
> > there is no compatible XML datatype for Axis that would be understood by a 
> > .NET client?
> > 
> > Thanks,
> > Vivek
> > 
> > >From: Magnus Sandberg <magnus.sandberg@depicta.com>
> > >Reply-To: axis-user@ws.apache.org
> > >To: axis-user@ws.apache.org
> > >Subject: Interoperability/.NET/Arrays ... and more [long]
> > >Date: Mon, 01 Mar 2004 11:28:30 +0100
> > >
> > >
> > >I have seen quite a bit of post here on interoperability and problems
> > >with Axis not generation WSDL as expected.
> > >
> > >I have been trying for some time to deploy a quite large service, using
> > >Axis 1.1, with about a hundred functions and very deep complex data
> > >structures, including Arrays.
> > >
> > >Just want to share a few things that I have found out on my journey to
> > >success and to ask a few thing that don't work as I want them to.
> > >
> > >We are building our service from WSDL that we create in XML-spy, in out
> > >first attempt we tried to generate a Doc/Literal Service. WSDL2Java
> > >successfully generated java classes for us but when we tried to generate
> > >WSDL from the running service (using ?WSDL) Axis kept on giving us
> > >errors like this:
> > >
> > >---8<----
> > >Fault - WSDLException: faultCode=PARSER_ERROR: Problem parsing '- WSDL
> > >Document -'.: The value of the attribute
> > >"prefix="xmlns",localpart="tns1",rawname="xmlns:tns1"" is invalid.
> > >Prefixed namespace bindings may not be empty.:
> > >org.xml.sax.SAXParseException: The value of the attribute
> > >"prefix="xmlns",localpart="tns1",rawname="xmlns:tns1"" is invalid.
> > >Prefixed namespace bindings may not be empty.
> > >---8<-----
> > >
> > >After searching, reading and experimenting quite a bit we found out that
> > >Axis doesn't really like Doc/Literal so we tried RPC/Encoded instead.
> > >(Note that .NET only likes Doc/Literal or RPC/Encoded and no other
> > >combinations.) Now Axis could generate the WSDL and we started to build
> > >clients. Using Axis as client was no problem but the .NET client gave us
> > >this error:
> > >
> > >---8<-----
> > >System.InvalidOperationException: There is an error in XML document
> > >(114, 4). ---> System.InvalidCastException: Cannot assign object of type
> > >SOAPTest.WebReference1.DataType to an object of type
> > >SOAPTest.WebReference1.DataType[].
> > >---8<-----
> > >
> > >Again after some amount of testing we found that you must declare the
> > >Arrays in WSDL like this:
> > >
> > >----8<-----
> > >
> > ><xsd:complexType name="DataTypeArray">
> > >     <xsd:complexContent>
> > >         <xsd:restriction base="soapenc:Array">
> > >             <xsd:sequence>
> > >                 <xsd:element
> > >                         name="DataList"
> > >                         type="DataListType"
> > >                         maxOccurs="unbounded"/>
> > >	</xsd:sequence>
> > >             <xsd:attribute
> > >                        ref="soapenc:arrayType"
> > >                        wsdl:arrayType="tns:DataListTyp[]"/>
> > >         </xsd:restriction>
> > >     </xsd:complexContent>
> > ></xsd:complexType>
> > >
> > >---8<----
> > >
> > >(I.e. using ComplexType + ComplexContent)
> > >
> > >No other syntax seemes to satisfy both Axis and .NET when using encoded.
> > >So finally we got it all up and running and so far it seems that we have
> > >interoperability with many different SOAP toolkits.
> > >
> > >And a few questions:
> > >
> > >How to you get Axis to return SoapFaults? I have declared faults in the
> > >WSDL, the Fault classes are generated and I throw the generated Faults.
> > >Still the only fault that Axis seems to return back to the client is the
> > >"General Fault". Is it possibly, and in that case how, to make Axis to
> > >return the correct SoapFault?
> > >
> > >Can axis handle <choice>? If I crate a WSDL with a <choice>, Axis
keeps
> > >on generating the same code as for <sequence>. Even worse is that ?wsdl
> > >generates a <sequence> in the wsdl and not a <choice>.
> > >
> > >
> > >
> > >Thanks,
> > >
> > >
> > >/Magnus Sandberg
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > 
> > _________________________________________________________________
> > One-click access to Hotmail from any Web page  download MSN Toolbar now! 
> > http://clk.atdmt.com/AVE/go/onm00200413ave/direct/01/
> > 
> 
> 
> =====
> Davanum Srinivas - http://webservices.apache.org/~dims/


Mime
View raw message