Tami,
Here's what I've done to make it work with .NET:
I've located the following code in the
org.apache.axis.encoding.ser.ArraySerializer.serialize() method
And in both places, commented out the if(...) condition in order to
place an array wrapper around the elements for arrays specified using
the <element
minOccurs="0" maxOccurs="unbounded"...> WSDL syntax.
------------ begin snippet (Line# 322) ------------------------
// if (!maxOccursUsage) {
//****** commented out *****//
serializeAttr = null; // since we are putting them here
context.startElement(name, attributes);
elementName = Constants.QNAME_LITERAL_ITEM;
// }
//****** commented out *****//
------------ end snippet --------------------------------------
With the corresponding serialization of a closing wrapper later on:
------------ begin snippet (Line# 363)--------------------------
// if (!maxOccursUsage)
//****** commented out *****//
context.endElement();
------------ end snippet ---------------------------------------
In order to set the appropriate type of array elements, I also changed
the following code (a bit of a blind hack, but it works) in the same
method FROM:
------------ begin snippet (Line# 336)--------------------------
context.serialize(elementName, serializeAttr, aValue,
componentQName, // prefered type
QName
true, // Send null values
null); // Respect default type
config
------------ end snippet ---------------------------------------
TO:
------------ begin snippet -------------------------------------
context.serialize(elementName, serializeAttr, aValue,
msgContext.getTypeMapping().getXMLType(aValue.getClass(),null,encoded),
// prefered type QName
true, // Send null values
null); // Respect default type config
------------ end snippet ---------------------------------------
Remember, your .NET client needs to use the
System.Xml.Serialization.XmlArrayItemAttribute("item")]
attribute on your web service methods (in your Reference.cs file) in
order to consume arrays serialized form axis with elements named <item>.
I hope this helps,
Eric
-----Original Message-----
From: Tami Wright [mailto:[EMAIL PROTECTED]
Sent: Monday, September 27, 2004 12:25 PM
To: [EMAIL PROTECTED]
Subject: Array of Objects in Axis and .NET interop
Hi,
I wondered what the status was with the message thread originally posted
by Eric Chijioke entitled "Axis and .NET interoperability - Arrays".
Any interim solution that can be posted until the bug is resolved would
be appreciated.
Best Regards,
tami