nadir amra created AXIS2-5356:
---------------------------------

             Summary: Axis2 does not handle java.sql's  Date, Time, and 
TimeStamp
                 Key: AXIS2-5356
                 URL: https://issues.apache.org/jira/browse/AXIS2-5356
             Project: Axis2
          Issue Type: Bug
    Affects Versions: 1.6.2
         Environment: Windows XP, Axis2 1.6.2
            Reporter: nadir amra


Axis2 blows up with the stack trace below when a Java class that has any of the 
following classes as parameters in a method, or as a return value:

java.sql.Date, java.sql.Time, java.sql.Timestamp.

Here is the stack trace:

[WARN] Unable to locate a BeanInfo cache for class java.sql.Date 
(stopClass=null). This will negatively affect performance!
[ERROR] Exception occurred while trying to invoke service method getSQLDate
org.apache.axis2.AxisFault: java.sql.Date
        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
        at 
org.apache.axis2.engine.DefaultObjectSupplier.getObject(DefaultObjectSupplier.java:47)
        at 
org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:412)
        at 
org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:818)
        at 
org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:737)
        at 
org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:646)
        at 
org.apache.axis2.rpc.receivers.RPCUtil.processRequest(RPCUtil.java:153)
        at 
org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:206)
        at 
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
        at 
org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
        at 
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
        at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.InstantiationException: java.sql.Date
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at 
org.apache.axis2.engine.DefaultObjectSupplier.getObject(DefaultObjectSupplier.java:42)
        ... 30 more

And here is the simple class that I used:

package sample;

public class ServiceDateTime
{
    public java.util.Date getUtilDate(java.util.Date date)
    {
        return new java.util.Date();
    }

    public java.util.Calendar getUtilCalendar(java.util.Calendar dateTime)
    {
        return java.util.Calendar.getInstance();
    }
    
    public java.sql.Date getSQLDate(java.sql.Date date)
    {
        return new java.sql.Date(2000);
    }

    public java.sql.Time getSQLTime(java.sql.Time time)
    {
        return new java.sql.Time(3000);
    }    

    public java.sql.Timestamp getSQLTimestamp(java.sql.Timestamp dateTime)
    {
        return new java.sql.Timestamp(4000);
    }   
}

The generated WSDL file I suppose looks OK.  It maps the java.sql types Date, 
Time, and Timestamp to date, or time. or dateTime. 

If that is the case, then we should handle the conversion of the java.sql types.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to