【问题标题】:ClassNotFoundException oracle.jdbc.driver.OracleDriverClassNotFoundException oracle.jdbc.driver.OracleDriver
【发布时间】:2017-07-19 09:00:00
【问题描述】:

我知道有成千上万的关于 CNFE 的博客,但我无法让它发挥作用。

我使用 Maven 构建我的 GWT 项目。在 pom.xml 中有这样一行:

<dependency>
    <groupId>oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
    <scope>runtime</scope>
</dependency>

在构建的 .war 文件中,WEB-INF/lib 中有正确的 .jar。所以这门课是我期望的。但我仍然收到 ClassNotFoundException。

我哪里错了?是因为运行时作用域吗?

【问题讨论】:

  • 好吧,如果您删除范围,它是否有效?你更新了你的 Maven 依赖项了吗?
  • 什么时候收到异常?如果它是在构建过程中出现的,那么它肯定是因为运行时范围。
  • 当我想访问数据库时,运行时抛出异常。
  • 没有运行时范围也无法工作
  • 也许您还有其他版本? (其他罐子,可能包含不同)

标签: java oracle maven jdbc classnotfoundexception


【解决方案1】:

检查您的项目构建路径并为每个文件夹启用特定的输出文件夹。逐个浏览项目的每个源文件夹并设置 Maven 将使用的输出文件夹。

例如,您的网络项目的src/main/java 应该在网络项目下有target/classes 等等。

如果您的 Web 项目需要资源下的一些配置文件,请务必将该文件夹包含为源文件夹并进行正确的构建路径配置。

【讨论】:

    【解决方案2】:

    事实证明,驱动程序需要在 tomcat 的 /lib 文件夹中。

    它与这篇文章中描述的 DataSource 有关:

    Tomcat6 ignores web-inf/lib

    【讨论】:

      猜你喜欢
      • 2013-03-13
      • 2012-06-17
      • 2017-02-14
      • 1970-01-01
      • 2020-05-07
      • 2016-06-19
      • 1970-01-01
      相关资源
      最近更新 更多