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#g​​etDriverVersion() 将报告 jar 的版本。

【讨论】:

【参考方案2】:

我为这个问题道歉。问题的原因与 HSQL 数据库无关。数据源是使用 Spring 创建的,我在两个不同的地方为数据源 bean 使用了相同的名称。

【讨论】:

以上是关于HSQLDB 在 Windows 上运行,但在 Linux 上抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB - 如何设置 .lobs 文件编码?

脚本在Windows中运行但在Jenkins中失败

为啥在嵌入式 HSQLDB 上运行更新查询会消耗大量内存?

Traefik docker 映像不能在 Windows 上运行但在 MacOS 上运行?

在 Windows 7 上崩溃但在 XP 上运行

HSQLDB 1.8 不能在派生表中进行排序?