jTDS - 运行 Maven 构建的项目时没有合适的驱动程序异常
我们有一个简单的 [spring-hibernate] 应用程序(控制台应用程序),我们在可执行 JAR 文件的清单文件中设置了类路径。 并且该应用程序使用 jTDS JDBC 驱动程序连接到数据库,在 Windows 计算机和 JDK 1.6 上一切正常,但在 Linux 上,该应用程序无法找到驱动程序, 我们使用 java -jar MainClassName 运行该程序。
非常感谢任何可能发生这种情况的建议。
We have a simple [spring-hibernate] application (console app) where in we have set the classpath in manifest file of the executable JAR file. And the app connects to the database using jTDS JDBC Driver, Everything works as expected on Windows machine and JDK 1.6, but on Linux, the app is unable to find the driver,
We are running the program using java -jar MainClassName.
Any suggestions why this might be happening is greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一个 Maven 错误
http://jira.codehaus.org/browse/MNG-3563
It is a Maven bug
http://jira.codehaus.org/browse/MNG-3563
老实说,这听起来像是糟糕的 CLASSPATH。 我建议开始调试此问题的一件事是将 jtds 包复制到与主包/类相同的路径,然后查看它是否有效。 这样您就可以确定类路径清单是否存在问题。 Spring/Hibernate 依赖于 lib 目录,因此它将始终位于类路径上,因为它是主要结构。 还可以使用 lib 目录进行测试。
希望本指南能有所帮助。 还发送更多信息,例如路径、类路径和清单文件。
Honestly it sounds like bad CLASSPATH. One thing I suggest to start debugging this problem is copying the jtds package to same path as your main packages/classes and see if it works. This way you can assure the Classpath manifest is or isn't the problem. The Spring/Hibernate relies on the lib directory, so it will always be on classpath because it's main structure. Use the lib directory also to test.
Hope this guidelines will help. Also send more information, like paths, classpath and manifest files.
出现此问题是因为我们的 jdbc.url 的 url 无效。 这是因为 maven 在分析时将 jdbc.url 属性视为特殊属性,而不是在 filter.properties 中定义的 url。 这就是“没有合适的驱动程序”异常的原因。 这个问题应该更清楚了。
无论如何,为了解决这个问题,我们必须将 jdbc.url 属性重命名为 jdbc.url.somename。 这解决了我们的 Maven 分析问题。 对于名为“server.name”的属性,我们也遇到了类似的 Maven 分析问题。此过滤器属性也使 Maven 分析变得混乱。 我们还必须更改该属性的名称。
再次感谢费尔南多。
This issue occurred because our jdbc.url had invalid url. This was because maven treats jdbc.url property as a special property and while profiling, instead of url defined in the filter.properties. And that is the reason "No Suitable Driver" exception. The question should have been more clear.
Anyways to fix that we had to rename jdbc.url properties to jdbc.url.somename. This fixed our issue with maven profiling. We also had a similar maven profiling issue for a property called "server.name" This filter property was also confusing maven profiling . We had to change the name of that property as well.
Thanks again Fernando.