tuscany-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sunny Ip (JIRA)" <tuscany-...@ws.apache.org>
Subject [jira] Created: (TUSCANY-1199) ClassCastException when getting back a type extended from anything besides a string
Date Mon, 02 Apr 2007 21:15:33 GMT
ClassCastException when getting back a type extended from anything besides a string
-----------------------------------------------------------------------------------

                 Key: TUSCANY-1199
                 URL: https://issues.apache.org/jira/browse/TUSCANY-1199
             Project: Tuscany
          Issue Type: Bug
          Components: Java SCA Web App Runtime
    Affects Versions: Java-M2
         Environment: Apache Tomcat 5.5.17
            Reporter: Sunny Ip


Originally posted under SDO Implementation, but it was suggested it may be an SCA proxy problem:

In my client code (originating from a JSP), whenever I am expecting a return type that extends
anything but a string (tried so far with boolean, int, double, decimal, long), I get the following
when I call my service: 

java.lang.ClassCastException: java.lang.String 
$Proxy34.getAccountBalance(Unknown Source) 
com.bns.references.account.client.AccountClientImpl.getAccountBalance(AccountClientImpl.java:14)

org.apache.jsp.AccountClientTest_jsp._jspService(AccountClientTest_jsp.java:81) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
org.apache.tuscany.runtime.webapp.TuscanyFilter.doFilter(TuscanyFilter.java:58) 

Here is a snippet from a WSDL file that is being used: 

<xs:schema xmlns:sample="http://sample" targetNamespace="http://sample"> 
  <xsd:element name="getAccountBalance"> 
    <xsd:complexType> 
      <xsd:sequence> 
        <xsd:element name="accountNumber" type="sample:AccountNumber" /> 
      </xs:sequence> 
    </xsd:complexType> 
  </xsd:element> 
  <xsd:element name="getAccountBalanceResponse"> 
    <xsd:complexType> 
      <xsd:sequence> 
        <xsd:element name="return" type="sample:Dollars" /> 
      </xsd:sequence> 
    </xsd:complexType> 
  </xsd:element> 
  <xsd:simpleType name="Dollars"> 
    <xsd:restriction base="xsd:double"> 
      <xsd:minInclusive value="0" /> 
    </xsd:restriction> 
  </xsd:simpleType> 
</xsd:schema> 

with everything else exactly the same, changing the return type for getAccountBalanceResponse
from "sample:Dollars" to "xsd:double" makes everything work fine. I have attached the wsdl
and scdl (client side) files for reference. To reproduce:

1) create/generate classes to implement and consume the service described by the wsdl
2) expose the service in your scdl 
3) call the getAccountBalance operation

The crash will occur after the method on the service side is complete, but before the client
gets a response.  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


Mime
View raw message