执行代码时显示java.lang.ClassNotFoundException : oracle. jdbc.internal.XMLTypeIntf 异常?

标签 java database eclipse jdbc jar

我试图从数据库中获取 xml 值并显示在文本框中,但是当我执行代码时出现以下异常,

类似地,我尝试从数据库获取字符串值(文本)并在文本框中显示它的工作正常。XMLType 问题和异常。

我正在使用 eclipse 应用程序执行代码并包含 jars xdb6,ojdbc14,xmlparserv2

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: oracle/jdbc/internal/XMLTypeIntf at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at oracle.xdb.XMLTypeFactory.create(XMLTypeFactory.java:74) at oracle.sql.OPAQUE.toClass(OPAQUE.java:376) at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:318) at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:144) at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:100) at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:915) at Searchdb.actionPerformed(Searchdb.java:327) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: oracle.jdbc.internal.XMLTypeIntf at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 55 more

String strxa = tfx1.getText(); //here i will get the student id from user.

    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//host:1521/service","username","pwd");
    Statement st =con.createStatement();
    String str3 ="select student_xml  from student where student_id='"+strxa+"'";

    System.out.println(str3);

    ResultSet rs = st.executeQuery(str3);
    System.out.println(str3);

   if (rs.next()) {

            XMLType poxml = (XMLType)rs.getObject(1);
            System.out.println(poxml); //when i try to print this no output in console
            String poString =poxml.getStringVal();
            System.out.println(poString); when i try to print this no output in console


            //Sets Records in TextFields.
            area.setText(poString);


        }

我的 jars 或代码有什么问题吗?当我尝试在 while 循环中打印值时,它没有在控制台中打印出来。

最佳答案

这个错误告诉我你正在使用不兼容版本的 xdb 和 ojdbc JAR。

根据您的堆栈跟踪,oracle.xdb.XMLTypeFactory 类(位于 xdb JAR 中)依赖于 oracle.jdbc.internal.XMLTypeIntf 类。后一个类可以在 JDBC 驱动程序 JAR 的 12c 版本中找到,可以从 this page 下载。 ,但不是在早于该版本的 JDBC 驱动程序中。

要么将 ojdbc 升级到更高版本,要么将 xdb 降级到旧版本。

关于执行代码时显示java.lang.ClassNotFoundException : oracle. jdbc.internal.XMLTypeIntf 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488175/

相关文章:

database - 在数据库中存储带有提及 (@FirstName) 的评论的最佳方式

java - 解析嵌套的 JSON

java - Spring Boot 2.5.0、Spring Cloud 2020.0.2 和 Hibernate 5.4.31 - H2 数据库多行插入失败

database - Liquibase 回滚不是智能确定语句执行的顺序。那是对的吗?

sql - 使用模型关联查找

Android - 修改 "Graphical Layout"中的布局后,代码会在滚动时自动更改。如何避免这种情况?

在 Eclipse 中使用 ANSI 编译 C 代码

java - 无法启动 Activity ComponentInfo

java - 为什么我的自定义微调器被禁用/无响应?

java - 枚举中的耦合