需要哪些 Oracle jdbc jar

Raa*_*akh 1 java oracle tomcat jar jdbc

我在 Oracle jdbc 下载页面http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html中看到许多 jar 文件

我已经下载了以下驱动程序:

  1. ojdbc6.jar
  2. ojdbc6_g.jar
  3. ojdbc6dms.jar
  4. ojdbc6dms_g.jar
  5. orai18n.jar

我正在尝试在我的 Tomcat 7 版本中使用它。我将所有这些 jar 文件添加到 $CATALINA_HOME/lib 文件夹中,但几天后我的 Tomcat 抛出此错误:

    HTTP Status 500 - Servlet execution threw an exception

type Exception report

message Servlet execution threw an exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
root cause

java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter;
    oracle.sql.converter.CharacterConverterFactoryOGS.make(CharacterConverterFactoryOGS.java:40)
    oracle.sql.CharacterSetWithConverter.getInstance(CharacterSetWithConverter.java:135)
    oracle.sql.CharacterSetFactoryThin.make(CharacterSetFactoryThin.java:195)
    oracle.sql.CharacterSet.make(CharacterSet.java:555)
    oracle.jdbc.driver.DBConversion.init(DBConversion.java:236)
    oracle.jdbc.driver.DBConversion.<init>(DBConversion.java:133)
    oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1704)
    oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:385)
    oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:564)
    oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:251)
    oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
    oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:563)
    java.sql.DriverManager.getConnection(DriverManager.java:571)
    java.sql.DriverManager.getConnection(DriverManager.java:215)
    DB.getOracleConnection(DB.java:13)
    IndexDAO.displayNewsTicker(IndexDAO.java:54)
    SiteTemplate.newsTicker(SiteTemplate.java:256)
    SiteTemplate.headerButtons(SiteTemplate.java:226)
    Index.doGet(Index.java:55)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.

Apache Tomcat/7.0.47
Run Code Online (Sandbox Code Playgroud)

我的oracle版本是SQL*Plus: Release 11.2.0.2.0 Production我搜索了很多,但大多数专家都在谈论jdbc驱动程序的重复或错误版本。我仔细检查了这两个建议,但遇到了同样的问题。

现在我想到了一个问题,我可能会在我的 tomcat lib 文件夹中添加错误的 jars。我的意思是,我可能需要 1-2 个 jar 文件,但添加 5 个上述 jdbc jar,它们可能具有重复的类。

请指教

str*_*tle 5

您只需要这个:ojdbc6.jar

  • ojdbc*.jar - 支持 Thin 和 OCI 驱动程序基本功能的所有类

  • ojdbc*_g.jar - 与 ojdbc*.jar 相同,只是使用 -g 选项编译以包含调试信息并包含 java.util.logging 调用。

  • ojdbc*dms.jar - 与 ojdbc*.jar 相同,但包含支持 Oracle 动态监控服务 (DMS) 的代码。还包括一些 JDBC 日志记录支持。仅当 dms.jar 也在类路径中时才能使用此文件。dms.jar 文件不作为 RDBMS 产品的一部分提供。它仅作为 Oracle 应用服务器产品的一部分提供。

  • ojdbc*dms_g.jar - 与 ojdbc*dms.jar 相同,只不过使用 -g 选项编译以包含调试信息并具有完整的 JDBC 日志记录支持。

  • orai18n.jar - 包含支持高级数据类型(对象)中所有 Oracle 字符集的配置信息。如果数据库字符集不是 UCS2、ASCII、ISO_LATIN_1、UTF8 和 AL32UTF8 之一,并且应用程序使用 ADT,则必须在类路径中包含此文件。

摘自此处:Oracle JDBC 常见问题解答