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; >>} >>public class MethodDescriptions{ >> public String name; >> public String returnvalue; >> public Vector signature; // filled with Strings >>}
