1

我使用 buildomatic 中的安装脚本安装了 war 文件分发。安装成功,但是当我启动tomcat服务器时,它显示了一些数据库异常

https://gist.github.com/shruti-palshikar/5ae801674dbd2a537518

我检查了最新的 postgres 驱动程序是否存在于 tomcat/lib 中。我还检查了数据库“jasperserver”是否具有所有必要的表但是这些表是空的,有谁知道哪个脚本将数据加载到表中?任何帮助表示赞赏

4

2 回答 2

1

来自 PostgreSQL 的实际错误是:

 relation "jiresourcefolder" does not exist

查询似乎是:

select this_.id as id5_0_, this_.version as version5_0_, this_.uri as uri5_0_, this_.hidden as hidden5_0_, this_.name as name5_0_, this_.label as label5_0_, this_.description as descript7_5_0_, this_.parent_folder as parent8_5_0_, this_.creation_date as creation9_5_0_, this_.update_date as update10_5_0_ 
from JIResourceFolder this_ where (this_.uri=?)

通常丑陋的框架生成 SQL。

只有两种可能:

  1. 没有表“jiresourcefolder”、“JIResourceFolder”或大写字母的任何其他变体。
  2. 该表是用引号创建的以保留其大小写,并且查询未使用引号。

以下将起作用:

CREATE TABLE JiReSoRrCeFoLdEr ...
SELECT * FROM jiresourcefolder...
SELECT * FROM JIRESOURCEFOLDER...
SELECT * FROM JIresourceFolder...

任何未加引号的表(或列)名称都在内部映射为小写,因此将全部匹配。

但是,如果您引用创建的表:

CREATE TABLE "JIResourceFolder"
SELECT * FROM "JIResourceFolder"  -- works
SELECT * FROM JIResourceFolder    -- doesn't

检查你的数据库模式,看看你是否有这个表,以及它是否都是小写的。然后,检查您的 java 框架的文档,看看是否有一些标志控制数据库表的引用。标志似乎设置在一个地方而不是另一个地方。

于 2013-10-21T19:01:21.293 回答
0

我在 Jasper Studio 中遇到了同样的问题。

我的问题是错误的数据适配器(没有这样的表的数据库)被分配给报告。

我已经切换到“设计”窗口并在“设置”旁边的该窗口右上角选择正确的数据适配器。

于 2018-12-31T16:36:18.233 回答