Java 需要哪些Oracle jdbc JAR

Java 需要哪些Oracle jdbc JAR,java,oracle,tomcat,jdbc,jar,Java,Oracle,Tomcat,Jdbc,Jar,我在OracleJDBC下载页面中看到了许多jars文件 我下载了以下驱动程序: ojdbc6.jar ojdbc6_g.jar ojdbc6dms.jar ojdbc6dms_g.jar orai18n.jar 我正试图在我的Tomcat7版本中使用它。我将所有这些jar文件添加到$CATALINA_HOME/lib文件夹中,但几天后,我的Tomcat抛出以下错误: HTTP Status 500 - Servlet execution threw an exception type

我在OracleJDBC下载页面中看到了许多jars文件

我下载了以下驱动程序:

  • ojdbc6.jar
  • ojdbc6_g.jar
  • ojdbc6dms.jar
  • ojdbc6dms_g.jar
  • orai18n.jar
  • 我正试图在我的Tomcat7版本中使用它。我将所有这些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
    
    HTTP状态500-Servlet执行引发异常
    类型异常报告
    消息Servlet执行引发异常
    说明服务器遇到内部错误,无法满足此请求。
    例外
    javax.servlet.ServletException:servlet执行引发异常
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    根本原因
    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)
    DBConversion.(DBConversion.java:133)
    oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1704)
    oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:385)
    PhysicalConnection.(PhysicalConnection.java:564)
    T4CConnection(T4CConnection.java:251)
    oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
    oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:563)
    getConnection(DriverManager.java:571)
    java.sql.DriverManager.getConnection(DriverManager.java:215)
    getOracleConnection(DB.java:13)
    displayNewsTicker(IndexDAO.java:54)
    newsTicker(sitemplate.java:256)
    headerButtons(sitemplate.java:226)
    doGet(Index.java:55)
    javaservlet.http.HttpServlet.service(HttpServlet.java:621)
    javaservlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    注意,根本原因的完整堆栈跟踪可在Apache Tomcat/7.0.47日志中找到。
    ApacheTomcat/7.0.47
    
    我的oracle版本是
    SQL*Plus:Release 11.2.0.2.0生产版
    我搜索了很多,但大多数专家都在谈论jdbc驱动程序的重复或错误版本。我仔细检查了两个建议,但问题是一样的

    现在我的脑海中出现了一个问题,我可能会在我的tomcat lib文件夹中添加错误的jar。我的意思是,我可能需要1-2个jar文件,但添加5个前面提到的jdbc jar,它们可能有重复的类


    请建议您只需要这个:ojdbc6.jar

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

    • ojdbc*_g.jar与ojdbc*.jar相同,除了使用-g选项编译以包含调试信息和java.util.logging调用之外

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

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

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


    摘自此处:

    参见对ojdbc6_g.jar的描述:与ojdbc6.jar相同,但使用“javac-g”编译并包含跟踪代码。--请参见
    ojdbc6dms.jar的描述:与ojdbc6.jar相同,只是它包含支持DMS的工具和有限的java.util.logging调用。--因此,除了一个之外,删除所有的
    ojdbc6.jar
    ojdbc6_g.jar
    ojdbc6dms.jar
    ojdbc6dms_g.jar
    。它们都是“相同”的,您的错误似乎表明
    orai18n.jar
    文件与
    ojdbc6.jar
    文件的版本不同。你应该核实一下。这也可能意味着你有重复的jar。@Andreas你的意思是我删除了我在问题中提到的所有五个文件,包括i18n.jar,除了ojdbc6.jar。我说的对吗?我是认真的。您删除了其中3个文件(4个文件中的3=“除一个以外的所有文件”)。我不知道您是否需要
    orai18n.jar
    ,所以您也可以尝试删除它。我自己从来都不需要它,安德烈亚斯,非常感谢你。你能把你的评论加上作为答案吗?这样我就可以把它标记为正确的了