axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Grotzke <martin.grot...@javakaffee.de>
Subject axis-.net array handling
Date Thu, 21 Jul 2005 10:55:52 GMT
hi,

i'm currently trying to write a webservice in java as temporary
replacement for a .net-webservice.
the ws-client (using wsdl2java-stubs) shall be run against one or the
other webservice, without any redeployment.

now i have the problem, that wsdl2java produces different stubs for
arrays in .net and arrays in java.
i don't know if this is the problem of differences in both wsdls,
or what the real problem is.

so i'll describe the implementation, parts of the wsdls are attached.


the java-webservice provides the following method:

    public AuftragsStatusUpdate getAuftragsStatusUpdate(
		Calendar minModificationDate ) {
        // dummy implementation
	return _dummyResult;
    }

where the AuftragsStatusUpdate has the following properties
with corresponding setters and getters:

    private Calendar _maxModificationDate;
    private AuftragsStatusUpdateLine[] _auftragsStatusUpdateLines;


the .net webservice is implemented in the same manner (in c#).

when i run wsdl2java against the java-webservice, i get stubs with the
same structure. in .net, there's an additional class
    ArrayOfAuftragsStatusUpdateLine
generated, that is associated by the AuftragsStatusUpdate and itself
associates the array of AuftragsStatusUpdateLine.


the essential parts of wsdls:

the java-wsdl has the following types:

   <complexType name="AuftragsStatusUpdateLine">
    <sequence>
     <element name="auftragsNummer" nillable="true" type="xsd:long"/>
     <element name="status" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOfAuftragsStatusUpdateLine">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item"
type="impl:AuftragsStatusUpdateLine"/>
    </sequence>
   </complexType>
   <complexType name="AuftragsStatusUpdate">
    <sequence>
     <element name="auftragsStatusUpdateLines" nillable="true"
type="impl:ArrayOfAuftragsStatusUpdateLine"/>
     <element name="maxModificationDate" nillable="true"
type="xsd:dateTime"/>
    </sequence>
   </complexType>

the .net-wsdl:

      <s:complexType name="AuftragsStatusUpdate">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1"
name="MaxModificationDate" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1"
name="ArrayOfAuftragsStatusUpdateLines"
type="s0:ArrayOfAuftragsStatusUpdateLine" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfAuftragsStatusUpdateLine">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded"
name="AuftragsStatusUpdateLine" nillable="true"
type="s0:AuftragsStatusUpdateLine" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="AuftragsStatusUpdateLine">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="AuftragsNummer"
type="s:long" />
          <s:element minOccurs="0" maxOccurs="1" name="Status"
type="s:string" />
        </s:sequence>
      </s:complexType>


can anybody say what the problem here is?
do i have to change anything in .net or in java?

i don't if it's important, i'm using beehive (1.0m1) for writing
the java webservice, axis is 1.2.1.


thx in advance,
cheers,
martin



-- 


Mime
View raw message