【发布时间】:2017-10-28 08:16:14
【问题描述】:
我在 Oracle jdbc 下载页面http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html看到很多 jars 文件
我已经下载了以下驱动:
- 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_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的版本不同。您应该验证这一点。这也可能意味着你有重复的罐子。 -
@Andreas 你的意思是我删除了所有五个文件,包括我在问题中提到的 i18n.jar,除了 ojdbc6.jar。我说的对吗?
-
我是认真的。您删除了 3 个文件(3 = “除了一个”,共 4 个)。我不知道你是否需要
orai18n.jar,所以你也可以尝试删除它。我自己从来不需要它。 -
安德烈亚斯非常感谢您。您能否将您的 cmets 添加为答案,以便我将其标记为正确
标签: java oracle tomcat jdbc jar