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
