Hi. I'm using Axis 1.4. I solved my problem, I think it became a problem because I specified another package name when creating the stub files (don't know why though).
When I removed this pacakege option (the -p parameter in org.apache.axis.wsdl.WSDL2Java) then everything works fine. Thanks for the help anyway :) - Espen ----- Original Message ---- From: Martin Gainty <[EMAIL PROTECTED]> To: axis-user@ws.apache.org Sent: Thursday, December 7, 2006 4:14:55 PM Subject: Re: java.lang.ClassCastException Espen/Philip I did'nt see ServiceLocator impelemnted in Axis2 ..are you perhaps using Axis-1_3? if you are using 1.3 and look at the AddressBookServiceLocator from samples your signature would be public AddressBookServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException { ( the ServiceLocator you are using has no params ) M- --------------------------------------------------------------------------- This e-mail message (including attachments, if any) is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, proprietary , confidential and exempt from disclosure. If you are not the intended recipient, you are notified that any dissemination, distribution or copying of this communication is strictly prohibited. --------------------------------------------------------------------------- Le présent message électronique (y compris les pièces qui y sont annexées, le cas échéant) s'adresse au destinataire indiqué et peut contenir des renseignements de caractère privé ou confidentiel. Si vous n'êtes pas le destinataire de ce document, nous vous signalons qu'il est strictement interdit de le diffuser, de le distribuer ou de le reproduire. ----- Original Message ----- From: "Philipp Perner" <[EMAIL PROTECTED]> To: <axis-user@ws.apache.org> Sent: Thursday, December 07, 2006 9:18 AM Subject: Re: java.lang.ClassCastException > What came first to my mind is: > > Try > OrderAttributeTO ob = > (OrderAttributeTO)iOrderPresentation.findOrderDetails("2"); > instead of > OrderAttributeTO ob = iOrderPresentation.findOrderDetails("2"); //GET THE > ERROR HERE > > I didn't try, but perhaps that's the problem. Which databinding and version > of axis2 do you use? > > Espen Falkevik schrieb: > >> 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] >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > _________________________________________________________ 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]