當我嘗試通過JDBC SQLXML對象傳遞給Oracle存儲過程在Weblogic上運行的Java 6應用程序,我收到以下錯誤:甲骨文JDBC的XMLType的NoClassDefFoundError
Cause: java.lang.NoClassDefFoundError Location: javax.servlet.ServletException: java.lang.NoClassDefFoundError: oracle/xdb/XMLType java.lang.NoClassDefFoundError: oracle/xdb/XMLType at oracle.jdbc.driver.PhysicalConnection.createSQLXML(PhysicalConnection.java:9724) at weblogic.jdbc.wrapper.Connection.createSQLXML(Connection.java:1034)
代碼的相關部分:
String sql = "{call " + procedureName + "(?)}";
CallableStatement callableStatement = mOracleConnection.prepareCall(sql);
SQLXML sqlxml = mOracleConnection.createSQLXML();
DOMResult dr = new DOMResult();
sqlxml.setResult(DOMResult.class);
dr.setNode(parameter);
callableStatement.setSQLXML(1, sqlxml);
callableStatement.executeUpdate();
callableStatement.close();
This article將錯誤歸因於缺少的xdb.jar。
我下載了xdb6.jarOracle site並且似乎將其添加到CLASSPATH中。
我還仔細檢查了oracle.xdb.XMLtype
類文件存在於JAR中。
我仍然收到此錯誤。
有關進一步故障排除的任何建議?
編輯 [15年11月19日]:
我加Class.forName("oracle.xdb.XMLType")
測試 「失蹤」 類的明確加載。在將xmlparserv2.jar添加到組合中後,我的測試代碼運行正常,但我在PhysicalConnection
中遇到了同樣的異常。
我正在使用池連接,如果它很重要。