ORA-29548:报告的Java系统类:无法识别classes.bin中指定的版本

ORA-29548:报告的Java系统类:无法识别classes.bin中指定的版本,java,oracle,xa,Java,Oracle,Xa,问题:在使用Java和Oracle XA模拟分布式事务期间,启动新事务(XA.start)时遇到异常“ORA-29548:Java system class reported:无法识别classes.bin中指定的版本” 初步分析:检查系统JDK版本和Oracle中的JDK版本。这是不匹配的 System JDK (Java -version): 1.6.0_31 Oracle JDK (DBMS_JAVA.GET_JDK_VERSION()): 1.6.0_37 JDK中的差异是否是“无法识

问题:在使用Java和Oracle XA模拟分布式事务期间,启动新事务(XA.start)时遇到异常“ORA-29548:Java system class reported:无法识别classes.bin中指定的版本”

初步分析:检查系统JDK版本和Oracle中的JDK版本。这是不匹配的

System JDK (Java -version): 1.6.0_31
Oracle JDK (DBMS_JAVA.GET_JDK_VERSION()): 1.6.0_37

JDK中的差异是否是“无法识别class.bin中指定的版本”错误的原因?还有其他可能导致这种情况的情况吗?

事实上,我认为您有一位开发人员使用
1.7
(或
1.8
)进行了构建,但没有将合规性级别设置为
1.6
。我这样说是因为您的错误实际上来自JRE,异常的相关部分是“Java system class reported:Can not Identified release”

如果您已将最新的PSU或Java修补程序应用于数据库,请确保已运行@postinstall.sql。例如,20406220在Oracle_home/sqlpatch/20406220目录中有一个postinstall.sql。

非常感谢您的提示。在链接中找到了解决方案。通过使用Oracle提供的update_javavm_db.sql,版本不匹配得到了修复。