Update on these items:
> 1. WSDL2Java emits the wrapper types for Doc/lit wrapped services, even
> though we explicitly try to prevent this.
This turned out to be an problem only for WSDLs that contained the xsd:anyType
in them. I submitted a fix on Friday.
> 3. When trying to deploy a service to test the above problems, all those
> useless typemapping in the deploy.wsdd cause Axis to fail to generate WSDL
> for the service.
Fixing #1 above solved this problem.
> 2. Two dimensional Object arrays (Object[][]) in a JavaBean do not even come
> close to getting serialized correctly in doc/lit mode.
This is the heart of my problem - I have no solution as of yet.
The ArraySerializer is doing the wrong thing for this definition:
<complexType name="ArrayOf_xsd_anyType">
<sequence>
<element name="item"
maxOccurs="unbounded"
minOccurs="0"
type="xsd:anyType"/>
</sequence>
</complexType>
<complexType name="ArrayOfArrayOf_xsd_anyType">
<sequence>
<element name="item"
maxOccurs="unbounded"
minOccurs="0"
type="impl:ArrayOf_xsd_anyType"/>
</sequence>
</complexType>
<complexType name="QueryBean">
<sequence>
<element name="data"
nillable="true"
type="impl:ArrayOfArrayOf_xsd_anyType"/>
</sequence>
</complexType>
Here is the XML produced, which doesn't look good:
<ns3:data xsi:type="ns4:ArrayOfArrayOf_xsd_anyType"
xmlns:ns3="http://rpc.xml.coldfusion/"
xmlns:ns4="http://wscf_document.webservices.cfsuite">
<ns3:data xsi:type="xsd:string">TRUE</ns3:data>
<ns3:data xsi:type="xsd:dateTime">2002-01-21T05:00:00.000Z</ns3:data>
</ns3:data>
It should look something like this:
<data>
<item xsi:type="ArrayOf_xsd_anyType">
<item xsi:type="string">TRUE</item>
<item xsi:type="xsd:dateTime">2002-01-21T05:00:00.000Z</item>
</item>
</data>
I believe the changes to support the minoccurs/maxoccurs arrays have negatively
affected this case, but we may never have done this right in the
document/literal case
I have a test case if anyone wants to take a stab at looking at this problem in
parallel. Can't seem to send it to the list right now though... Contact me
directly for it.
--
Tom Jordahl
Macromedia Server Development
________________________________________
From: Tom Jordahl [mailto:[EMAIL PROTECTED]
Sent: Friday, June 03, 2005 1:07 PM
To: [email protected]
Subject: Current Axis problems and questions about the future
FYI
I am currently debugging the following problems in an attempt to resolve all
the issues my local product regression tests have uncovered in 1.2.
1. WSDL2Java emits the wrapper types for Doc/lit wrapped services, even though
we explicitly try to prevent this.
Somewhere in the last few years of the 1.2 timeframe this got broken. For
large services that are wrapped, this creates a lot of junk. It also means
that the JavaDeployWriter emits a slew of useless type mappings. Taking some
responsibility for the incredible complexity of our SymbolTable implementation,
this is code that I wrote. Unfortunately I can’t take much responsibility
for the hacking that the code has undergone since 1.0/1.1. ☹
2. Two dimensional Object arrays (Object[][]) in a JavaBean do not even come
close to getting serialized correctly in doc/lit mode.
The metadata in the Bean only describes a single dimension array, and that is
how it gets serialized.
3. When trying to deploy a service to test the above problems, all those
useless typemapping in the deploy.wsdd cause Axis to fail to generate WSDL for
the service. It appears to be due to anonymous types (those pesky “>foo”
QNames) misleading the WSDL generator in to doing the wrong thing.
I believe most, if not all of the above problems have been logged as bugs by
users. I hope to be able to spend a few days and unravel at least some of
this. Any help is welcome.