axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Espen Falkevik <sp1_falke...@yahoo.com>
Subject java.lang.ClassCastException
Date Thu, 07 Dec 2006 13:59:59 GMT
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


Mime
View raw message