You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Neil Youngman <Ne...@wirefast.com> on 2010/08/25 10:54:32 UTC

Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY

I have an app that was working find under Java 1.4, Tomcat5 and Axis2 1.4. Under Java 1.6, Tomcat6 and Axis2 1.4 it seems to be mostly working, but there is one exception that I can not seem to get rid of. 

Caused by: java.lang.ClassCastException: oracle.sql.ARRAY cannot be cast to oracle.sql.ARRAY

I put some debug around the offending line of code, thus:

      Object o = p_Stmt.getObject(1);
      System.err.println( "Got class " + o.getClass() );
      oracle.sql.ARRAY arry = (oracle.sql.ARRAY)o;

and that prints

Got class class oracle.sql.ARRAY

so it's definitely an oracle.sql.ARRAY

The best information I can find about this sort of error suggests that there is an issue somewhere with different class loaders loading up the class, probably one at the Tomcat level and one at the Axis2 level. This didn't see, to cause any problems on the older configuration, provided that the same version of classes12.jar was used by both Tomcat and Axis2. Unfortunately on the newer configuration I have been unable to get it to work.

As far as I can see the jar is in 2 places, i.e. /usr/local/tomcat/lib/classes12.jar and axis/WEB-INF/lib/classes12.jar.

I have updated it to the more recent ojdbc14.jar, which did not help. I have also examined every jar under /usr/local/tomcat/ and axis/WEB-INF/ to look for conflicting definitions.

I am now stuck. Can anyone help me resolve this issue, please?

Neil Youngman


Neil Youngman 
Developer
Wirefast Limited
 
Wirefast provides secure corporate messaging services.
See our messaging solutions at http://www.wirefast.com/
Please consider the environment.
Does this email or attachment need to be printed? 
This message contains confidential information and is intended only 
for the individual named. If you are not the named addressee you 
should not disseminate, distribute or copy this email. Please 
notify the sender immediately by email if you have received this 
email by mistake and delete this email from your system.

Email transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses. The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of email transmission.
Wirefast Limited is registered in England & Wales
Company number: 03865860
Registered Office: 7/10 Chandos Street, Cavendish Square, London, W1G 9DQ


RE: Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY

Posted by Neil Youngman <Ne...@wirefast.com>.
Thanks for that.

Under Tomcat5 the app would not work if I did not have the jar in both locations. I was used a pooled database connection set up in Tomcat and Axis2 did not get the jar from the Tomcat library. This seems to have changed under Tomcat6 and removing the version under WEB-INF/lib/ seems to resolve the problem. I will need to do further tests, but I think that's all that's needed to resolve the issue.

Regarding classes12 and ojdbc14, the original app used classes12. I removed that and replaced it with ojdbc14. They were never used at the same time.

Neil


-----Original Message-----
From: ceri tandogan [mailto:ceritandogan@yahoo.com]
Sent: Wed 25-Aug-10 12:45
To: java-user@axis.apache.org
Subject: Re: Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY
 
Hi,

1)Do not put the same jar in /usr/local/tomcat/lib/ and in /WEB-INF/lib/  try 
the one of them.Jars placed in /usr/local/tomcat/lib/ should be the first loaded 
ones.

2) Why is it not enough to use only ojdbc14.jar?  why you include classes12.jar?

Ceri Tandogan



________________________________
From: Neil Youngman <Ne...@wirefast.com>
To: java-user@axis.apache.org
Sent: Wed, August 25, 2010 11:54:32 AM
Subject: Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY

Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY 
I have an app that was working find under Java 1.4, Tomcat5 and Axis2 1.4. Under 
Java 1.6, Tomcat6 and Axis2 1.4 it seems to be mostly working, but there is one 
exception that I can not seem to get rid of.

Caused by: java.lang.ClassCastException: oracle.sql.ARRAY cannot be cast to 
oracle.sql.ARRAY

I put some debug around the offending line of code, thus:

      Object o = p_Stmt.getObject(1);
      System.err.println( "Got class " + o.getClass() );
      oracle.sql.ARRAY arry = (oracle.sql.ARRAY)o;

and that prints

Got class class oracle.sql.ARRAY

so it's definitely an oracle.sql.ARRAY

The best information I can find about this sort of error suggests that there is 
an issue somewhere with different class loaders loading up the class, probably 
one at the Tomcat level and one at the Axis2 level. This didn't see, to cause 
any problems on the older configuration, provided that the same version of 
classes12.jar was used by both Tomcat and Axis2. Unfortunately on the newer 
configuration I have been unable to get it to work.

As far as I can see the jar is in 2 places, i.e. 
/usr/local/tomcat/lib/classes12.jar and axis/WEB-INF/lib/classes12.jar.

I have updated it to the more recent ojdbc14.jar, which did not help. I have 
also examined every jar under /usr/local/tomcat/ and axis/WEB-INF/ to look for 
conflicting definitions.

I am now stuck. Can anyone help me resolve this issue, please?

Neil Youngman 


Neil Youngman  
Developer
Wirefast Limited

Wirefast provides secure corporate messaging services.
See our messaging solutions at http://www.wirefast.com/Please consider the 
environment.
Does this email or attachment need to be printed? This message contains 
confidential information and is intended only 

for the individual named. If you are not the named addressee you 
should not disseminate, distribute or copy this email. Please 
notify the sender immediately by email if you have received this 
email by mistake and delete this email from your system.

Email transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses. The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of email transmission.
Wirefast Limited is registered in England & Wales
Company number: 03865860
Registered Office: 7/10 Chandos Street, Cavendish Square, London, W1G 9DQ


      



Re: Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY

Posted by ceri tandogan <ce...@yahoo.com>.
Hi,

1)Do not put the same jar in /usr/local/tomcat/lib/ and in /WEB-INF/lib/  try 
the one of them.Jars placed in /usr/local/tomcat/lib/ should be the first loaded 
ones.

2) Why is it not enough to use only ojdbc14.jar?  why you include classes12.jar?

Ceri Tandoğan



________________________________
From: Neil Youngman <Ne...@wirefast.com>
To: java-user@axis.apache.org
Sent: Wed, August 25, 2010 11:54:32 AM
Subject: Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY

Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY 
I have an app that was working find under Java 1.4, Tomcat5 and Axis2 1.4. Under 
Java 1.6, Tomcat6 and Axis2 1.4 it seems to be mostly working, but there is one 
exception that I can not seem to get rid of.

Caused by: java.lang.ClassCastException: oracle.sql.ARRAY cannot be cast to 
oracle.sql.ARRAY

I put some debug around the offending line of code, thus:

      Object o = p_Stmt.getObject(1);
      System.err.println( "Got class " + o.getClass() );
      oracle.sql.ARRAY arry = (oracle.sql.ARRAY)o;

and that prints

Got class class oracle.sql.ARRAY

so it's definitely an oracle.sql.ARRAY

The best information I can find about this sort of error suggests that there is 
an issue somewhere with different class loaders loading up the class, probably 
one at the Tomcat level and one at the Axis2 level. This didn't see, to cause 
any problems on the older configuration, provided that the same version of 
classes12.jar was used by both Tomcat and Axis2. Unfortunately on the newer 
configuration I have been unable to get it to work.

As far as I can see the jar is in 2 places, i.e. 
/usr/local/tomcat/lib/classes12.jar and axis/WEB-INF/lib/classes12.jar.

I have updated it to the more recent ojdbc14.jar, which did not help. I have 
also examined every jar under /usr/local/tomcat/ and axis/WEB-INF/ to look for 
conflicting definitions.

I am now stuck. Can anyone help me resolve this issue, please?

Neil Youngman 


Neil Youngman  
Developer
Wirefast Limited

Wirefast provides secure corporate messaging services.
See our messaging solutions at http://www.wirefast.com/Please consider the 
environment.
Does this email or attachment need to be printed? This message contains 
confidential information and is intended only 

for the individual named. If you are not the named addressee you 
should not disseminate, distribute or copy this email. Please 
notify the sender immediately by email if you have received this 
email by mistake and delete this email from your system.

Email transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses. The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of email transmission.
Wirefast Limited is registered in England & Wales
Company number: 03865860
Registered Office: 7/10 Chandos Street, Cavendish Square, London, W1G 9DQ


      

Re: Can not cast oracle.sql.ARRAY to oracle.sql.ARRAY

Posted by Gary Peskin <ga...@gmail.com>.
If you change your code to:

  System.err.println( "Got class " + o.getClass() + "; loader = " +
o.getClassLoader());

and then add

   System.err.println("New class " +
oracle.sql.ARRAY.class.getClassLoader());

it should give you an idea as to what's going on.

HTH,
Gary