Search code examples
postgresqltomcatjdbcwar

Jasper server community edition installation issues for Postgres


I installed the war file distribution using the install scripts in buildomatic. The installation is successful but when I boot tomcat server it shows some database exceptions

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

I checked if the latest postgres driver exists in the tomcat/lib. I also checked if the database 'jasperserver' has all the necessary tables However these tables are empty , does anyone know which script loads data into tables? Any help is appreciated


Solution

  • The actual error from PostgreSQL is:

     relation "jiresourcefolder" does not exist
    

    The query seems to be:

    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=?)
    

    Typically ugly framework generated SQL.

    There are only two possibilities:

    1. There is no table "jiresourcefolder", "JIResourceFolder" or any other variation in capitals.
    2. The table was created with quotes to preserve its case and the query is not using quotes.

    The following will work:

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

    Any unquoted table (or column) names are internally mapped to lower-case so will all match.

    If however you quote a created table:

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

    Check your database schema and see if you have this table and whether it is all lower-case. Then, check the documentation for your java framework(s) and see if there is some flag that controls quoting of database tables. It seems likely that the flag is set in one place and not in another.