jTDS - 运行 Maven 构建项目时没有合适的驱动程序异常

Posted

技术标签:

【中文标题】jTDS - 运行 Maven 构建项目时没有合适的驱动程序异常【英文标题】:jTDS - No Suitable Driver Exception when running a Maven built project 【发布时间】:2008-09-14 07:44:02 【问题描述】:

我们有一个简单的 [spring-hibernate] 应用程序(控制台应用程序),其中我们在可执行 JAR 文件的清单文件中设置了类路径。并且应用程序使用 jTDS JDBC 驱动程序连接到数据库,在 Windows 机器和 JDK 1.6 上一切正常,但在 Linux 上,应用程序无法找到驱动程序, 我们正在使用 java -jar MainClassName 运行程序。

非常感谢任何关于为什么会发生这种情况的建议。

【问题讨论】:

您看到了什么错误?如果它是 NoClassDefError 或 ClassNotFoundException 则可能是类路径问题。 【参考方案1】:

出现这个问题是因为我们的 jdbc.url 有无效的 url。这是因为 maven 将 jdbc.url 属性视为特殊属性,并且在进行分析时,而不是在 filter.properties 中定义的 url。这就是“没有合适的司机”例外的原因。这个问题应该更清楚。

无论如何,我们必须将 jdbc.url 属性重命名为 jdbc.url.somename。这解决了我们的 Maven 分析问题。对于名为“server.name”的属性,我们也遇到了类似的 maven 分析问题。这个过滤器属性也让 maven 分析感到困惑。我们还必须更改该属性的名称。

再次感谢费尔南多。

【讨论】:

【参考方案2】:

老实说,这听起来像是糟糕的 CLASSPATH。我建议开始调试此问题的一件事是将 jtds 包复制到与主包/类相同的路径并查看它是否有效。通过这种方式,您可以确保 Classpath 清单是否存在问题。 Spring/Hibernate 依赖于 lib 目录,因此它将始终位于类路径中,因为它是主要结构。也可以使用 lib 目录进行测试。

希望本指南对您有所帮助。还可以发送更多信息,例如路径、类路径和清单文件。

【讨论】:

Fernando,类路径由 Maven 在清单文件中生成,在 Windows 机器上运行良好。无论如何,我将在周一将类路径条目发布到清单文件中。【参考方案3】:

这是一个 Maven 错误 http://jira.codehaus.org/browse/MNG-3563

【讨论】:

以上是关于jTDS - 运行 Maven 构建项目时没有合适的驱动程序异常的主要内容,如果未能解决你的问题,请参考以下文章

使用maven编译并运行Spring项目

Maven构建后某些场景未加载

无法构建maven项目

Maven基本介绍

快速构建Maven项目

Idea 新建Maven项目时没有servlet选项