I have found an incompatibility of the JMS aqapi.jar from Oracle and Weblogic 12c.
The Problem:
We used the oracle aaqapi.jar to send JMS Messages to a Oracle JMS Queue table and an other Java application read this messages also using the oracle aqapi.jar.
The Sender application was on a BEA weblogic 10 Server, but now we have to migrate to weblogic 12c.
The application cannot use the old oracle aqapi.jar anymore, we had to implement the Welblogic JMS Queues and we need to use the Weblogic 12c extended implementation of the aqapi.jar.
But the receiver application is still on a tomcat using the old oracle aqapi.jar.
Problem: the receiver application get a ClassCast Exception while reading the JMS message from the new wls 12c!
20 Okt 2015 08:55:55,398 ERROR FzChangeQueueListener:73 - Fehler im receiver-Loop Linked:
java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.Hashtable
at oracle.jms.AQjmsMapMessage.convertByteArrayToHashtable(AQjmsMapMessage.java:924)
So the cause of the problem the weblogic implementation of the aqapi.jar uses a java.util.HashMap in the AQjmsMapMessage, which is serialized to the JMS queue,
but the receiver expects a java.util.Hashtable whish is used in the oracle implantation of the aqapi.jar's AQjmsMapMessage!
So we are no longer able to communicate this way.
We cannot use the oracle aqapi.jar in wls 12c, so we must change the aqapi.jar also in the receiver application from oracle to the wls 12c aqapi.jar!
Thank you for changing this BEA Weblogic belongs to oracle now, or not?
The Problem:
We used the oracle aaqapi.jar to send JMS Messages to a Oracle JMS Queue table and an other Java application read this messages also using the oracle aqapi.jar.
The Sender application was on a BEA weblogic 10 Server, but now we have to migrate to weblogic 12c.
The application cannot use the old oracle aqapi.jar anymore, we had to implement the Welblogic JMS Queues and we need to use the Weblogic 12c extended implementation of the aqapi.jar.
But the receiver application is still on a tomcat using the old oracle aqapi.jar.
Problem: the receiver application get a ClassCast Exception while reading the JMS message from the new wls 12c!
20 Okt 2015 08:55:55,398 ERROR FzChangeQueueListener:73 - Fehler im receiver-Loop Linked:
java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.Hashtable
at oracle.jms.AQjmsMapMessage.convertByteArrayToHashtable(AQjmsMapMessage.java:924)
So the cause of the problem the weblogic implementation of the aqapi.jar uses a java.util.HashMap in the AQjmsMapMessage, which is serialized to the JMS queue,
but the receiver expects a java.util.Hashtable whish is used in the oracle implantation of the aqapi.jar's AQjmsMapMessage!
So we are no longer able to communicate this way.
We cannot use the oracle aqapi.jar in wls 12c, so we must change the aqapi.jar also in the receiver application from oracle to the wls 12c aqapi.jar!
Thank you for changing this BEA Weblogic belongs to oracle now, or not?