Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to avoid the java.lang.IncompatibleClassChangeError

549065Nov 29 2006 — edited Dec 5 2006
Hi all!
I have problem to make my client Java application to work under Oracle JVM. This application works fine as standalone java class. In this mode it communicates fine with a web server.
I have loaded all needed jar files into my user (sample) using the following command:
Loadjava -thin -r -v -f -user sample/sample@<my_url>:1521:usr10se <jar files and classes>
When I call my public method from a PL/SQL function I receive the following error:
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.IncompatibleClassChangeError

The following is a trace context:

*** 2006-11-29 17:28:10.134
*** ACTION NAME:() 2006-11-29 17:28:10.134
*** MODULE NAME:(SQL*Plus) 2006-11-29 17:28:10.134
*** SERVICE NAME:(…) 2006-11-29 17:28:10.134
*** SESSION ID:(49.5) 2006-11-29 17:28:10.134
java.lang.IncompatibleClassChangeError
at org.apache.axis.encoding.SerializationContext.startElement(SerializationContext.java:1122)
at org.apache.axis.message.MessageElement.outputImpl(MessageElement.java:1253)
at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)
at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478)
at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)
at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530)
at org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:554)
at org.apache.axis.Message.getContentType(Message.java:486)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:343)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:1792)
at org.uddi4j.transport.ApacheAxisTransport.send(ApacheAxisTransport.java:87)
at org.uddi4j.transport.TransportBase.send(TransportBase.java:53)
at org.uddi4j.client.UDDIProxy.send(UDDIProxy.java:1778)
at org.uddi4j.client.UDDIProxy.find_tModel(UDDIProxy.java:823)
at …. Call from my class

I suspected multiple definitions of the SerializationContext.class in my jar files but was wrong: there is only one definition in the axis.jar file. For some reasons this jar file contained SerializationContext.class and SerializationContext.java modules, but I resolved this problem earlier: loadjava does not allow loading the both.

What can be cause of the java.lang.IncompatibleClassChangeError problem?
What I have to do to make my class work from Oracle JVM?

Thanks,

Roman
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 2 2007
Added on Nov 29 2006
7 comments
4,116 views