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 构建项目时没有合适的驱动程序异常的主要内容,如果未能解决你的问题,请参考以下文章