Hi. I have a webservice with that takes a string in and returns a object. When I use my client I get the followin exception: When I use my client (which uses the stub files generated by WSDL2Java) I get the following exception:
Exception in thread "main" java.lang.ClassCastException: ws.OrderAttributeTO at ws.PresentSoapBindingStub.findOrderDetails(PresentSoapBindingStub.java:165) at webservice.PresentationClient.main(PresentationClient.java:31) Any help would be appreciated I use the Java2WSDL to generate the wsdl file (attached below): <?xml version="1.0" encoding="UTF-8"?> <!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--> <wsdl:types> http://schemas.xmlsoap.org/soap/encoding/"/> <complexType name="OrderAttributeTO"> <sequence> <element name="name" nillable="true" type="soapenc:string"/> <element name="value" nillable="true" type="soapenc:string"/> </sequence> </complexType> </schema> </wsdl:types> <wsdl:message name="findOrderDetailsResponse"> <wsdl:part name="findOrderDetailsReturn" type="tns2:OrderAttributeTO"/> </wsdl:message> <wsdl:message name="findOrderDetailsRequest"> <wsdl:part name="in0" type="soapenc:string"/> </wsdl:message> <wsdl:portType name="IOrderPresentation"> <wsdl:operation name="findOrderDetails" parameterOrder="in0"> <wsdl:input message="impl:findOrderDetailsRequest" name="findOrderDetailsRequest"/> <wsdl:output message="impl:findOrderDetailsResponse" name="findOrderDetailsResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="presentSoapBinding" type="impl:IOrderPresentation"> http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="findOrderDetails"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="findOrderDetailsRequest"> </wsdl:input> <wsdl:output name="findOrderDetailsResponse"> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="IOrderPresentationService"> <wsdl:port binding="impl:presentSoapBinding" name="present"> http://localhost:7001/axis/services/present"/> </wsdl:port> </wsdl:service> </wsdl:definitions> My presentation client: ws.IOrderPresentationService service = new ws.IOrderPresentationServiceLocator(); // Now use the service to get a stub which implements the SDI. ws.IOrderPresentation iOrderPresentation = service.getpresent(); // Make the actual call OrderAttributeTO ob = iOrderPresentation.findOrderDetails("2"); //GET THE ERROR HERE The PresentSoapBindingStub.java: (the exception happens when returning the object (in the catch at the bottom of the code) /** * PresentSoapBindingStub.java * * This file was auto-generated from WSDL * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. */ package presentation; public class PresentSoapBindingStub extends org.apache.axis.client.Stub implements presentation.IOrderPresentation { private java.util.Vector cachedSerClasses = new java.util.Vector(); private java.util.Vector cachedSerQNames = new java.util.Vector(); private java.util.Vector cachedSerFactories = new java.util.Vector(); private java.util.Vector cachedDeserFactories = new java.util.Vector(); static org.apache.axis.description.OperationDesc [] _operations; static { _operations = new org.apache.axis.description.OperationDesc[1]; _initOperationDesc1(); } private static void _initOperationDesc1(){ org.apache.axis.description.OperationDesc oper; org.apache.axis.description.ParameterDesc param; oper = new org.apache.axis.description.OperationDesc(); oper.setName("findOrderDetails"); param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "in0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false); oper.addParameter(param); oper.setReturnType(new javax.xml.namespace.QName("http://order.dto.om.edb.com", "OrderAttributeTO")); oper.setReturnClass(com.edb.om.dto.order.OrderAttributeTO.class); oper.setReturnQName(new javax.xml.namespace.QName("", "findOrderDetailsReturn")); oper.setStyle(org.apache.axis.constants.Style.RPC); oper.setUse(org.apache.axis.constants.Use.ENCODED); _operations[0] = oper; } public PresentSoapBindingStub() throws org.apache.axis.AxisFault { this(null); } public PresentSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { this(service); super.cachedEndpoint = endpointURL; } public PresentSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { if (service == null) { super.service = new org.apache.axis.client.Service(); } else { super.service = service; } ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); java.lang.Class cls; javax.xml.namespace.QName qName; javax.xml.namespace.QName qName2; java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class; java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class; java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class; java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class; java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class; java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class; java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class; java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class; java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; qName = new javax.xml.namespace.QName("http://order.dto.om.edb.com", "OrderAttributeTO"); cachedSerQNames.add(qName); cls = com.edb.om.dto.order.OrderAttributeTO.class; cachedSerClasses.add(cls); cachedSerFactories.add(beansf); cachedDeserFactories.add(beandf); } protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException { try { org.apache.axis.client.Call _call = super._createCall(); if (super.maintainSessionSet) { _call.setMaintainSession(super.maintainSession); } if (super.cachedUsername != null) { _call.setUsername(super.cachedUsername); } if (super.cachedPassword != null) { _call.setPassword(super.cachedPassword); } if (super.cachedEndpoint != null) { _call.setTargetEndpointAddress(super.cachedEndpoint); } if (super.cachedTimeout != null) { _call.setTimeout(super.cachedTimeout); } if (super.cachedPortName != null) { _call.setPortName(super.cachedPortName); } java.util.Enumeration keys = super.cachedProperties.keys(); while (keys.hasMoreElements()) { java.lang.String key = (java.lang.String) keys.nextElement(); _call.setProperty(key, super.cachedProperties.get(key)); } // All the type mapping information is registered // when the first call is made. // The type mapping information is actually registered in // the TypeMappingRegistry of the service, which // is the reason why registration is only needed for the first call. synchronized (this) { if (firstCall()) { // must set encoding style before registering serializers _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); _call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC); for (int i = 0; i < cachedSerFactories.size(); ++i) { java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i); javax.xml.namespace.QName qName = (javax.xml.namespace.QName) cachedSerQNames.get(i); java.lang.Object x = cachedSerFactories.get(i); if (x instanceof Class) { java.lang.Class sf = (java.lang.Class) cachedSerFactories.get(i); java.lang.Class df = (java.lang.Class) cachedDeserFactories.get(i); _call.registerTypeMapping(cls, qName, sf, df, false); } else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) { org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory) cachedSerFactories.get(i); org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory) cachedDeserFactories.get(i); _call.registerTypeMapping(cls, qName, sf, df, false); } } } } return _call; } catch (java.lang.Throwable _t) { throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t); } } public com.edb.om.dto.order.OrderAttributeTO findOrderDetails(java.lang.String in0) throws java.rmi.RemoteException { if (super.cachedEndpoint == null) { throw new org.apache.axis.NoEndPointException(); } org.apache.axis.client.Call _call = createCall(); _call.setOperation(_operations[0]); _call.setUseSOAPAction(true); _call.setSOAPActionURI(""); _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); _call.setOperationName(new javax.xml.namespace.QName("urn:presentation", "findOrderDetails")); setRequestHeaders(_call); setAttachments(_call); try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in0}); if (_resp instanceof java.rmi.RemoteException) { throw (java.rmi.RemoteException)_resp; } else { extractAttachments(_call); try { return (com.edb.om.dto.order.OrderAttributeTO) _resp; } catch (java.lang.Exception _exception) { return (com.edb.om.dto.order.OrderAttributeTO) org.apache.axis.utils.JavaUtils.convert(_resp, com.edb.om.dto.order.OrderAttributeTO.class); } } } catch (org.apache.axis.AxisFault axisFaultException) { throw axisFaultException; } } } _________________________________________________________ Alt i én. Få Yahoo! Mail med adressekartotek, kalender og notisblokk. http://no.mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]