The BEST way to figure out what's wrong is to run WSDL2Java against the WSDL and 
compare your code
against the code that WSDL2Java generates...

Thanks,
dims

--- "Almeida, Timothy" <[EMAIL PROTECTED]> wrote:
> Kai,
> In the WSDL I see the following type: 'Methods', but in your client, you are
> registering 'Methoden'! While it translate fine to German, Java probably
> struggles with correlating them! ;) (Maybe I'm missing something.)
> The other thing I'd mention is that Methods instances apparently contain a
> Vector. The types of any objects that wind up in those Vectors also need
> serialization support! (Just thought I'd mention that, in case you were
> using any non-standard types there.)
> Good luck,
> Tim
> 
> -----Original Message-----
> From: Kai Unewisse [mailto:[EMAIL PROTECTED]
> Sent: Thursday, March 27, 2003 4:24 AM
> To: Axis-User
> Subject: RE: DII : JavaBeans & mapping 
> 
> 
> 
> Thanks  Tim,
> 
> You are right about that it appears I am trying to use DII ;-)
> 
> But I still have the 500 Error...
> 
> 
> Any Hints ?
> 
> Thank you a lot already !
> 
> Kai
> 
> 
> On the Clientside I use call.register() for registering (like
> userguide/example5 in axis)
> 
> 
>       Service service = new Service();
>       QName    qn     = new QName( "urn:BankingService", "Methoden" );
>       QName    qnb    = new QName( "urn:BankingService",
> "MethodDescriptions" );
> 
>       Call call = (Call) service.createCall();
> 
>       call.registerTypeMapping(banking.bo.Methoden.class, qn,
>                new
> org.apache.axis.encoding.ser.BeanSerializerFactory(banking.bo.Methoden.class
> , qn),
>                new
> org.apache.axis.encoding.ser.BeanDeserializerFactory(banking.bo.Methoden.cla
> ss, qn));
>       call.registerTypeMapping(banking.bo.MethodDescriptions.class, qnb,
>                new
> org.apache.axis.encoding.ser.BeanSerializerFactory(banking.bo.MethodDescript
> ions.class, qnb),
>                new
> org.apache.axis.encoding.ser.BeanDeserializerFactory(banking.bo.MethodDescri
> ptions.class, qnb));
> 
> 
> Is there any difference to TypeMappingRegistry ?
> 
> 
> My wsdl file (shortend) says:
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <wsdl:definitions
> targetNamespace="http://localhost:8080/axis/services/Banking";
> xmlns="http://schemas.xmlsoap.org/wsdl/";
> xmlns:apachesoap="http://xml.apache.org/xml-soap";
> xmlns:impl="http://localhost:8080/axis/services/Banking";
> xmlns:intf="http://localhost:8080/axis/services/Banking";
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:tns1="urn:BankingService"       xmlns:tns3="http://bo.banking";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> <wsdl:types>
>   <schema targetNamespace="urn:BankingService"
> xmlns="http://www.w3.org/2001/XMLSchema";>
>   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
>   <complexType name="Methods">
>       <sequence>
>               <element name="erlaubt" nillable="true"
> type="apachesoap:Vector" />
>       </sequence>
>   </complexType>
>   <complexType name="MethodDescriptions">
>   <sequence>
>       <element name="exception" nillable="true" type="xsd:string" />
>       <element name="name" nillable="true" type="xsd:string" />
>       <element name="signatur" nillable="true" type="apachesoap:Vector" />
>       <element name="returnValue" nillable="true" type="xsd:string" />
>   </sequence>
>   </complexType>
>   </schema>
>  <schema targetNamespace="http://xml.apache.org/xml-soap";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
>  <complexType name="Vector">
>       <sequence>
>               <element maxOccurs="unbounded" minOccurs="0" name="item"
> type="xsd:anyType" />
>       </sequence>
>   </complexType>
>   </schema>
>  <schema targetNamespace="http://localhost:8080/axis/services/Banking";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
>  <complexType name="ArrayOf_xsd_string">
>  <complexContent>
>  <restriction base="soapenc:Array">
>   <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]" />
>   </restriction>
>   </complexContent>
>   </complexType>
>   </schema>
> </wsdl:types>
>  <wsdl:message name="loginRequest">
>   <wsdl:part name="accountNo" type="xsd:string" />
>   <wsdl:part name="pw" type="xsd:string" />
>   </wsdl:message>
>  <wsdl:message name="loginResponse">
>   <wsdl:part name="loginReturn" type="tns1:Methods" />
>   </wsdl:message>
>  <wsdl:portType name="ServerPipeline">
>  <wsdl:operation name="login" parameterOrder="accountNo pw">
>    <wsdl:input message="impl:loginRequest" name="loginRequest" />
>    <wsdl:output message="impl:loginResponse" name="loginResponse" />
>    </wsdl:operation>
>  </wsdl:portType>
> - <wsdl:binding name="BankingSoapBinding" type="impl:ServerPipeline">
>   <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"; />
>   <wsdl:operation name="login">
>   <wsdlsoap:operation soapAction="" />
>   <wsdl:input name="loginRequest">
>   <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> namespace="http://localhost:8080/axis/services/Banking"; use="encoded" />
>   </wsdl:input>
>   <wsdl:output name="loginResponse">
>   <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> namespace="http://localhost:8080/axis/services/Banking"; use="encoded" />
>   </wsdl:output>
>   </wsdl:operation>
>   </wsdl:binding>
>  <wsdl:service name="ServerPipelineService">
>  <wsdl:port binding="impl:BankingSoapBinding" name="Banking">
>   <wsdlsoap:address location="http://localhost:8080/axis/services/Banking";
> />
>   </wsdl:port>
>   </wsdl:service>
>   </wsdl:definitions>
> 
> 
> My wsdd file looks like:
> 
> <deployment xmlns="http://xml.apache.org/axis/wsdd/";
>             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
> 
>   <service name="Banking" provider="java:RPC">
>   <parameter name="className" value="banking.server.ServerPipeline"/>
>   <parameter name="allowedMethods" value="*"/>
>   <beanMapping qname="myNS:Methods" xmlns:myNS="urn:BankingService"
> languageSpecificType="java:banking.bo.Methoden"/>
>   <beanMapping qname="myNS:MethodDescriptions"
> xmlns:myNS="urn:BankingService"
> languageSpecificType="java:banking.bo.MethodDescriptions"/>
>    </service>
> 
> </deployment>
> 
> 
> 
> >Once you've made beans of all the classes that need to cross the wire, you
> >will also need to register those types. On the server-side you'd do this
> >using the <beanmapping> element in the WSDD, while deploying. If using
> >generated stubs, you don't need to do anything to register those types on
> >the client side, but you would need to register additional type mappings if
> >using dynamic invocation as you appear to be trying to do.
> >Hope this [is accurate and] helps...
> >Tim
> 
> 
> >>I get an "Error : (500)Internal Server Error" when I access my
> >>server-WS-Method :
> 
> >>public Methods login(String AccountNumber, String pw) {
> 
> >>My Client accesses this by :
> 
> >>Methods obj = (Methods) call.invoke(new Object[] { "0123456789", "ABC" });
> 
> 
> >>I use JavaBeans,which holds a java.util.Vector filled with other
> >>custom objects.
> 
> 
> >>public class Methods {
> >>    public Vector methodDescriptions;
> >>}
> 
=== message truncated ===


=====
Davanum Srinivas - http://webservices.apache.org/~dims/

__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com

Reply via email to