axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philipp Perner <philipp.per...@healthgate.at>
Subject Re: java.lang.ClassCastException
Date Thu, 07 Dec 2006 14:18:01 GMT
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: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message