Hi Dims,

thanks for your answer. I think that there is already a bug report for this bug 
(if it's stil present). I'm not sure but maybe I'm doing something bad with my 
deployment. The problem is: The webservices I'm working on are generated from 
CORBA-IDL - not from a WSDL as I have explained in my mail "AXIS 1.2 and MS VB 
interop (arrays)" So the way it goes is CORBA-IDL -> idlj-> Java-Stubs -> 
deploy as WS -> generate WSDL -> generate Client-Stub. 

The generated WSDL is (the "getUserDomainsByName"-Methode returning an Array of 
"TDomain" makes trouble): 

<wsdl:definitions 
targetNamespace="http://gateway.bofit.enw.procom.de/gatekeeper";>
-
        <!--
WSDL created by Apache Axis version: 1.2.1
Built on Jun 14, 2005 (09:15:57 EDT)
-->
-
        <wsdl:types>
-
        <schema elementFormDefault="qualified" 
targetNamespace="http://gateway.bofit.enw.procom.de/gatekeeper";>
<import namespace="http://gateway.bofit.enw.procom.de"/>
<import namespace="http://CORBA.omg.org"/>
-
        <element name="logoutWebservice">
<complexType/>
</element>
-
        <element name="logoutWebserviceResponse">
<complexType/>
</element>
<element name="fault" type="tns1:EInternalError"/>
-
        <element name="createServiceManager">
-
        <complexType>
-
        <sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:short"/>
</sequence>
</complexType>
</element>
-
        <element name="createServiceManagerResponse">
-
        <complexType>
-
        <sequence>
<element name="createServiceManagerReturn" type="xsd:anyType"/>
</sequence>
</complexType>
</element>
<element name="fault1" type="tns1:EUnknownUser"/>
<element name="fault2" type="tns1:EUserLoggedIn"/>
<element name="fault3" type="tns1:EWrongPassword"/>
<element name="fault4" type="tns1:EUnknownDomain"/>
-
        <element name="getUserDomainsByName">
-
        <complexType>
-
        <sequence>
<element name="in0" type="xsd:string"/>
</sequence>
</complexType>
</element>
-
        <element name="getUserDomainsByNameResponse">
-
        <complexType>
-
        <sequence>
<element maxOccurs="unbounded" name="getUserDomainsByNameReturn" 
type="tns1:TDomain"/>
</sequence>
</complexType>
</element>
<element name="fault5" type="tns1:EDbError"/>
</schema>
-
        <schema elementFormDefault="qualified" 
targetNamespace="http://CORBA.omg.org";>
<import namespace="http://gateway.bofit.enw.procom.de/gatekeeper"/>
<import namespace="http://gateway.bofit.enw.procom.de"/>
-
        <complexType abstract="true" name="UserException">
<sequence/>
</complexType>
</schema>
-
        <schema elementFormDefault="qualified" 
targetNamespace="http://gateway.bofit.enw.procom.de";>
<import namespace="http://gateway.bofit.enw.procom.de/gatekeeper"/>
<import namespace="http://CORBA.omg.org"/>
-
        <complexType name="EInternalError">
-
        <complexContent>
-
        <extension base="tns2:UserException">
<sequence/>
</extension>
</complexContent>
</complexType>
-
        <complexType name="EUnknownUser">
-
        <complexContent>
-
        <extension base="tns2:UserException">
<sequence/>
</extension>
</complexContent>
</complexType>
-
        <complexType name="EUserLoggedIn">
-
        <complexContent>
-
        <extension base="tns2:UserException">
<sequence/>
</extension>
</complexContent>
</complexType>
-
        <complexType name="EWrongPassword">
-
        <complexContent>
-
        <extension base="tns2:UserException">
<sequence/>
</extension>
</complexContent>
</complexType>
-
        <complexType name="EUnknownDomain">
-
        <complexContent>
-
        <extension base="tns2:UserException">
<sequence/>
</extension>
</complexContent>
</complexType>
-
        <complexType name="TDomain">
-
        <sequence>
<element name="id" type="xsd:int"/>
<element name="transaktion" type="xsd:int"/>
<element name="name" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
-
        <complexType name="EDbError">
-
        <complexContent>
-
        <extension base="tns2:UserException">
-
        <sequence>
<element name="reason" nillable="true" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
</wsdl:types>
-
        <wsdl:message name="logoutWebserviceResponse">
<wsdl:part element="impl:logoutWebserviceResponse" name="parameters"/>
</wsdl:message>
-
        <wsdl:message name="EDbError">
<wsdl:part element="impl:fault5" name="fault"/>
</wsdl:message>
-
        <wsdl:message name="EUnknownDomain">
<wsdl:part element="impl:fault4" name="fault"/>
</wsdl:message>
-
        <wsdl:message name="getUserDomainsByNameResponse">
<wsdl:part element="impl:getUserDomainsByNameResponse" name="parameters"/>
</wsdl:message>
-
        <wsdl:message name="logoutWebserviceRequest">
<wsdl:part element="impl:logoutWebservice" name="parameters"/>
</wsdl:message>
-
        <wsdl:message name="getUserDomainsByNameRequest">
<wsdl:part element="impl:getUserDomainsByName" name="parameters"/>
</wsdl:message>
-
        <wsdl:message name="EInternalError">
<wsdl:part element="impl:fault" name="fault"/>
</wsdl:message>
-
        <wsdl:message name="EWrongPassword">
<wsdl:part element="impl:fault3" name="fault"/>
</wsdl:message>
-
        <wsdl:message name="createServiceManagerResponse">
<wsdl:part element="impl:createServiceManagerResponse" name="parameters"/>
</wsdl:message>
-
        <wsdl:message name="EUnknownUser">
<wsdl:part element="impl:fault1" name="fault"/>
</wsdl:message>
-
        <wsdl:message name="createServiceManagerRequest">
<wsdl:part element="impl:createServiceManager" name="parameters"/>
</wsdl:message>
-
        <wsdl:message name="EUserLoggedIn">
<wsdl:part element="impl:fault2" name="fault"/>
</wsdl:message>
-
        <wsdl:portType name="IBoFiTGatekeeper">
-
        <wsdl:operation name="logoutWebservice">
<wsdl:input message="impl:logoutWebserviceRequest" 
name="logoutWebserviceRequest"/>
<wsdl:output message="impl:logoutWebserviceResponse" 
name="logoutWebserviceResponse"/>
<wsdl:fault message="impl:EInternalError" name="EInternalError"/>
</wsdl:operation>
-
        <wsdl:operation name="createServiceManager">
<wsdl:input message="impl:createServiceManagerRequest" 
name="createServiceManagerRequest"/>
<wsdl:output message="impl:createServiceManagerResponse" 
name="createServiceManagerResponse"/>
<wsdl:fault message="impl:EUnknownDomain" name="EUnknownDomain"/>
<wsdl:fault message="impl:EWrongPassword" name="EWrongPassword"/>
<wsdl:fault message="impl:EUserLoggedIn" name="EUserLoggedIn"/>
<wsdl:fault message="impl:EUnknownUser" name="EUnknownUser"/>
</wsdl:operation>
-
        <wsdl:operation name="getUserDomainsByName">
<wsdl:input message="impl:getUserDomainsByNameRequest" 
name="getUserDomainsByNameRequest"/>
<wsdl:output message="impl:getUserDomainsByNameResponse" 
name="getUserDomainsByNameResponse"/>
<wsdl:fault message="impl:EDbError" name="EDbError"/>
<wsdl:fault message="impl:EUnknownUser" name="EUnknownUser"/>
</wsdl:operation>
</wsdl:portType>
-
        <wsdl:binding name="BoFiTGatekeeperSoapBinding" 
type="impl:IBoFiTGatekeeper">
<wsdlsoap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
-
        <wsdl:operation name="logoutWebservice">
<wsdlsoap:operation soapAction=""/>
-
        <wsdl:input name="logoutWebserviceRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
-
        <wsdl:output name="logoutWebserviceResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
-
        <wsdl:fault name="EInternalError">
<wsdlsoap:fault name="EInternalError" use="literal"/>
</wsdl:fault>
</wsdl:operation>
-
        <wsdl:operation name="createServiceManager">
<wsdlsoap:operation soapAction=""/>
-
        <wsdl:input name="createServiceManagerRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
-
        <wsdl:output name="createServiceManagerResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
-
        <wsdl:fault name="EUnknownDomain">
<wsdlsoap:fault name="EUnknownDomain" use="literal"/>
</wsdl:fault>
-
        <wsdl:fault name="EWrongPassword">
<wsdlsoap:fault name="EWrongPassword" use="literal"/>
</wsdl:fault>
-
        <wsdl:fault name="EUserLoggedIn">
<wsdlsoap:fault name="EUserLoggedIn" use="literal"/>
</wsdl:fault>
-
        <wsdl:fault name="EUnknownUser">
<wsdlsoap:fault name="EUnknownUser" use="literal"/>
</wsdl:fault>
</wsdl:operation>
-
        <wsdl:operation name="getUserDomainsByName">
<wsdlsoap:operation soapAction=""/>
-
        <wsdl:input name="getUserDomainsByNameRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
-
        <wsdl:output name="getUserDomainsByNameResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
-
        <wsdl:fault name="EDbError">
<wsdlsoap:fault name="EDbError" use="literal"/>
</wsdl:fault>
-
        <wsdl:fault name="EUnknownUser">
<wsdlsoap:fault name="EUnknownUser" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
-
        <wsdl:service name="IBoFiTGatekeeperService">
-
        <wsdl:port binding="impl:BoFiTGatekeeperSoapBinding" 
name="BoFiTGatekeeper">
<wsdlsoap:address location="http://localhost/axis/services/BoFiTGatekeeper"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

My WSDD for the service looks like this:

 <service name="BoFiTGatekeeper" provider="java:BoFiT" style="wrapped" >
                
<namespace>http://gateway.bofit.enw.procom.de/gatekeeper</namespace>
                <requestFlow>
                        <handler 
type="java:de.procom.enw.bofit.provider.BoFiTSessionHandler"/>
                </requestFlow>
                <responseFlow>
                        <handler 
type="java:de.procom.enw.bofit.provider.BoFiTSessionHandler"/>
                </responseFlow>
                
                <parameter name="ORBInitialHost" value="localhost"/>
                <parameter name="ORBInitialPort" value="900"/>
                <parameter name="NameID" value="BoFiTGatekeeperService"/>
                <parameter name="NameKind" value="ProCom"/>
                <parameter name="NamingServiceLoc" value="corbaloc:iiop:[EMAIL 
PROTECTED]:20001/NameService"/>
                <parameter name="InterfaceClassName" 
value="de.procom.enw.bofit.gateway.IBoFiTGatekeeper"/>
                <parameter name="HelperClassName" 
value="de.procom.enw.bofit.gateway.IBoFiTGatekeeperHelper"/>
                
                <beanMapping qname="myNS:TDomain" 
xmlns:myNS="http://gateway.bofit.enw.procom.de"; 
languageSpecificType="java:de.procom.enw.bofit.base.TDomain"/>
                <beanMapping qname="myNS:EInternalError" 
xmlns:myNS="http://gateway.bofit.enw.procom.de"; 
languageSpecificType="java:de.procom.enw.bofit.base.EInternalError"/>
                <beanMapping qname="myNS:EUnknownUser" 
xmlns:myNS="http://gateway.bofit.enw.procom.de"; 
languageSpecificType="java:de.procom.enw.bofit.base.EUnknownUser"/>
                <beanMapping qname="myNS:EUserLoggedIn" 
xmlns:myNS="http://gateway.bofit.enw.procom.de"; 
languageSpecificType="java:de.procom.enw.bofit.base.EUserLoggedIn"/>
                <beanMapping qname="myNS:EWrongPassword" 
xmlns:myNS="http://gateway.bofit.enw.procom.de"; 
languageSpecificType="java:de.procom.enw.bofit.base.EWrongPassword"/>
                <beanMapping qname="myNS:EUnknownDomain" 
xmlns:myNS="http://gateway.bofit.enw.procom.de"; 
languageSpecificType="java:de.procom.enw.bofit.base.EUnknownDomain"/>
                <beanMapping qname="myNS:EDbError" 
xmlns:myNS="http://gateway.bofit.enw.procom.de"; 
languageSpecificType="java:de.procom.enw.bofit.base.EDbError"/>
                
                <parameter name="allowedMethods" value="getUserDomainsByName,
                                                        createServiceManager,
                                                        logoutWebservice"/>
        </service>


When generating Client-Stubs for VB the "getUserDomainsByName"-Methode has the 
return type TDomain - not TDomain[] (or Variant in VB). Please, could you give 
me a hint what's going wrong here? 

Regards
Oliver Wolters

-----Ursprüngliche Nachricht-----
Von: Davanum Srinivas [mailto:[EMAIL PROTECTED] 
Gesendet: Mittwoch, 22. Juni 2005 14:19
An: axis-user@ws.apache.org
Betreff: Re: Bug with Arrays as Return Types


Oliver,

Can you please open a bug report and upload the WSDL you use to generate the 
server/client.

thanks,
dims

On 6/22/05, Wolters, Oliver <[EMAIL PROTECTED]> wrote:
>  
> 
> Hi,
> 
> I've got a Problem with web service methods returning an array. I have 
> found the example from http://wiki.apache.org/ws/DotNetInteropArrays 
> and it says:
> 
>  "At one point, there was a bug in AXIS dealing with an operation that 
> returns an array directly, rather than a structure containing an array 
> (ie, an operation like String[] getInfo() rather than  Container 
> getInfo()). This may still be present in AXIS V1.2RC3. Dims?"
> 
> Another thread in the archive says: "Also make sure that you've 
> applied the fix for the bug that Dino talks about."
> 
> I have installed AXIS 1.2.1 and the bug still seems to be present. Is 
> this true? If so: Where can I find a patch or a workaround? Please 
> help!
> 
> Mit freundlichen Grüßen
> 
> Dipl. Ing. Oliver Wolters
> (Systementwickler Auftragsentwicklung) 
> 
> --
> ProCom Systemhaus und 
> Ingenieurunternehmen GmbH 
> Luisenstr. 41 - D-52070 Aachen 
> 
> Tel. +49 241 51804-175
> Fax +49 241 51804-30 
> http://www.procom.de 
> mailto:[EMAIL PROTECTED] 
>  


-- 
Davanum Srinivas -http://blogs.cocoondev.org/dims/

Reply via email to