Hello all,
I have a
J2EE application that uses connection pooling in
JBoss 4.0.2. When I try to use the Oracle ArrayDescriptor class passed into a stored procedure, I get a ClassCastException when my connection tries to access the Oracle database. The application uses ojdbc14 located in the JBoss server directory; there is no copy of this jar file in the WEB-INF/lib directory. The JBoss connection pool is configured to use the oracle.jdbc.driver.OracleDriver class. I have found many instances on Google where others have had this same problem under various environments, but no one seems to have an answer for it. The standard
Java code snippet is provided by Oracle:
<p>
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor(
"Oracle Dictionary Type", connection
);
ARRAY array = new ARRAY(descriptor,this.connection,stores);
</p>
<p>
com.luxotticaRetail.dme.DatabaseException: java.lang.ClassCastException
at com.luxotticaRetail.dme.user.UserUpdateProcess.execute(UserUpdateProcess.java:37)
at com.luxotticaRetail.dme.user.UserUpdateAction.executeLogic(UserUpdateAction.java:36)
at com.luxotticaRetail.struts.BaseAction.execute(BaseAction.java:58)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at com.luxotticaRetail.struts.LuxActionServlet.process(LuxActionServlet.java:38)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.luxotticaRetail.dme.SecurityContextFilter.doFilter(SecurityContextFilter.java:171)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.ClassCastException
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:108)
at com.luxotticaRetail.dme.user.UserUpdateProcess.callUserUpdateSP(UserUpdateProcess.java:62)
at com.luxotticaRetail.dme.user.UserUpdateProcess.execute(UserUpdateProcess.java:35)
... 28 more
</p>