【问题标题】:Unable to load Oracle JDBC driver in JSF application on Tomcat 7无法在 Tomcat 7 上的 JSF 应用程序中加载 Oracle JDBC 驱动程序
【发布时间】:2014-06-01 11:06:54
【问题描述】:

我编写了一个使用与 Oracle 数据库的连接的 JSF 应用程序。我在本地 Tomcat(7.0 版)上验证了一切正常。然后,当使用我不管理的 Tomcat 7 部署到服务器时,我收到以下错误:

Caused by:
java.lang.NoClassDefFoundError - Could not initialize class oracle.jdbc.driver.OracleDriver

在我的本地系统上,我在 CATANIA_HOME/lib 中有 Oracle JDBC 驱动程序(版本 11.2.0.4)。根据我的部署服务器的信息,它们使用完全相同的驱动程序。

目前我正在使用一个非常基本的 JSF 软件,除了执行之外什么都不做

Class.forName("oracle.jdbc.driver.OracleDriver");

在页面加载时。同样,在我的本地系统上工作正常。在部署服务器上失败。我想也许他们错过了包含驱动程序,尽管他们写了他们把它放进去了。所以我将 ojdbc5.jar 添加到 WEB-INF/lib。然而,我得到了一个 SealingViolation,这似乎表明类加载器找到了两个包含 oracle 驱动程序的资源。

如果你能给我一些关于如何解决这个问题的提示,我会非常高兴。

谢谢

【问题讨论】:

  • 我已经试过了,没用。 Stills 引发了密封违规(可能是因为我也无法解封部署在 Tomcat 上的那个)此外......我会更高兴知道为什么我无法加载 Oracle 驱动程序,尽管 jar 是那里
  • 这听起来像是服务器端的错误配置。显然,没有为您的 webapp 加载 jar,并且需要针对服务器密钥库密封自定义 jar(可能 Tomcat 正在使用 SecurityManager 选项运行)。无论如何,如果你不能自己管理服务器,他们必须解决这个问题。
  • 假设它是 unix - 请您的支持团队为您提供 lsof -p <pid> 的输出,这将向您显示 tomcat 打开的每个 JAR - 这是我的一个随机示例 /apps/Tomcat/apache-tomcat-7.0.42/endorsed/ogclient.jar

标签: jsf tomcat tomcat7 driver


【解决方案1】:

只要把驱动jar放在你的WEB-INF/lib文件夹里,我这里放的是ojdbc6.jar,你的项目里一定要有一个ojdbc6.jar,希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2015-10-10
    • 2017-05-17
    • 2017-01-15
    相关资源
    最近更新 更多