HSQLDB 在 Windows 上运行,但在 Linux 上抛出异常
Posted
技术标签:
【中文标题】HSQLDB 在 Windows 上运行,但在 Linux 上抛出异常【英文标题】:HSQLDB is working on Windows but throws exceptions on Linux 【发布时间】:2011-04-26 04:34:15 【问题描述】:这真的很烦人:我部署在 Windows Tomcat 上的 java web 应用程序运行完美。当应用程序部署到 Linux 时,HSQLDB 开始抛出关于糟糕的 SQL 语法和基本 SQL 语句的语法的异常。像“DROP TABLE Test IF EXISTS”“IF EXISTS”是错误或“double”类型不受支持。我用 hsql 2.1.0 和 hsql 1.8.1 测试过——同样的错误。
我的大脑处于真正的 *** 中。我是否正在为一个已知问题而苦苦挣扎?
附: 经过进一步调查,它表明我的 Linux 网络应用程序突然切换到 Tomcat 的 DBCP,而不是在 WEB-INF/lib 中使用 DBCP
【问题讨论】:
【参考方案1】:HSQLDB 在 Linux 中的运行方式并没有什么不同。在 Linux 中,早期版本的 Jar 可能位于 Tomcat 的类路径中。在这种情况下,可能会拾取早期 jar 中的类。
可以向您的应用添加测试以检测早期版本的 Jars 的存在。
例如 DatabaseMetaData#getDriverVersion() 将报告 jar 的版本。
【讨论】:
【参考方案2】:我为这个问题道歉。问题的原因与 HSQL 数据库无关。数据源是使用 Spring 创建的,我在两个不同的地方为数据源 bean 使用了相同的名称。
【讨论】:
以上是关于HSQLDB 在 Windows 上运行,但在 Linux 上抛出异常的主要内容,如果未能解决你的问题,请参考以下文章