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.

Reply via email to