我们在OJDBC6到OJDBC7的申请中更新了OJDBC驱动程序。并得到奇怪的ClassCastException。内部日志显示在:
oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaserListener.(BlockSource.java:348)
我们有:
java.lang.ClassCastException: sun.management.MemoryImpl cannot be cast to javax.management.NotificationEmitter
我们不知道为什么会出现这个异常,因为根据http://www.docjar.com/docs/api/sun/management/MemoryImpl.html MemoryImpl实现了NotificationEmitter。
如果我们将JVM从Hotspot更改为IBM(两者都是JDK7),我们也会这样:
java.lang.ClassCastException: com.ibm.lang.management.MemoryMXBeanImpl incompatible with javax.management.NotificationEmitter
MemoryMXBeanImpl再次实现了NotificationEmitter。
因此,如果有人有解决方法或任何想法,为什么会发生这种情况,我将非常感激!