哪个Oracle JDBC罐需要
我看到很多坛子文件的Oracle JDBC下载页面http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html哪个Oracle JDBC罐需要
我已经下载了以下驱动程序:
- ojdbc6.jar
- ojdbc6_g.jar
- ojdbc6dms.jar
- ojdbc6dms_g.jar
- 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
我的Oracle版本是SQL*Plus: Release 11.2.0.2.0 Production
我搜索了很多,但大部分专家都在谈论重复或错版jdbc驱动程序。我加倍检查两个建议,但同样的问题。
现在问题出现在我的脑海里,我可能会在我的tomcat lib文件夹中添加错误的jar文件。我的意思是可能是我需要1-2个jar文件,但添加了5个前面提到的可能有重复类的jdbc jar。
请告知
你只需要这一个:ojdbc6.jar。
ojdbc的* .jar - 所有类支持基本功能的精简和OCI驱动程序
ojdbc * _g.jar - 同ojdbc *除非编译的.jar包含调试信息和java.util.logging调用的-g选项。
ojdbc * dms.jar - 与ojdbc * .jar相同,但包含支持Oracle动态监测服务(DMS)的代码。还包括一些JDBC日志记录支持。只有当dms.jar也在类路径中时才能使用此文件。 dms.jar文件不作为RDBMS产品的一部分提供。它仅作为Oracle应用服务器产品的一部分提供。
ojdbc * dms_g.jar - 同ojdbc *除了使用-g选项编译包含调试信息,以饱满的JDBC日志支持dms.jar。
orai18n.jar - 包含支持高级数据类型(对象)中所有Oracle字符集的配置信息。如果数据库字符集不是UCS2,ASCII,ISO_LATIN_1,UTF8和AL32UTF8,应用程序使用ADT,则必须将此文件包含在类路径中。
从这里摘自:Oracle JDBC FAQ
查看描述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'。他们都是“相同的”, – Andreas
你的错误似乎表明'orai18n.jar'文件与'ojdbc6.jar'不是同一个版本。你应该验证一下。这也可能意味着你有重复的罐子。 – Andreas
@Andreas你的意思是我删除了所有的五个文件,包括我在我的问题中提到的i18n.jar,除了ojdbc6.jar。我对吗? – Raakh