'BIRT connection issue

Please let me preface by saying I know absolutely nothing about BIRT. I have never worked with it but find myself having to diagnose an issue with our use of it. Doing so, I've become stumped.

Background:

  • There have been no code changes related to any of our BIRT files in years
  • We have all versions locked to something specific, so we didn't accidentally roll forward to a newer, incompatible version
  • We're running in a Docker container now (docker-compose specifically). This is the closest thing to a smoking gun I see -- perhaps when we migrated, some 'done directly on the server' change was left behind? Environment variable, manually downloaded JAR, something like that? But I don't even know what to check, and I cannot access the old version to compare differences.

The problem:

When visiting a URL such as http://localhost/birt/frameset?__report=something.rptdesign&__format=pdf&skey=something&__title=something&Company_id=something we get an error:

+ Multiple exceptions occurred.

What I have tried

Looking into the webapps/birt/logs/ReportEngine_*.log file, I see the following:

org.eclipse.birt.data.engine.odaconsumer.ConnectionManager openConnection
SEVERE: Unable to open connection.
org.eclipse.birt.report.data.oda.jdbc.JDBCException: Missing properties in Connection.open(Properties).

Elsewhere, I've seen that moving some missing JARs into birt/webapps/WEB-INF/lib can address such issues, but doing so has not yielded any different results. I have tried doing so with both mysql-connector-java-8.0.26.jar and org.eclipse.birt.report.data.oda.jdbc-4.8.2.jar but it has not changed the behavior. I think my error is unrelated to that but I thought it was worth a try.

I'm sure that error is correct -- something is missing from Properties in Connection.open(Properties) but I do not know BIRT well enough to know where it's looking for that or how to feed it what it needs/how to know what's missing.

I see that we have a DB.properties file in the parent folder of our rptdesign files like so:

  |- something/
  |---- something.rptdesign
  |- DB.properties

This file contains just a JDBC mysql string like foo.bar.com=jdbc:mysql://something:3306/something

It looks like every .rptdesign file has the same connection information in it, but also contains a username/password. I am able to connect to the database using those credentials.

Any help or other ideas are very appreciated. I can try to provide whatever details are needed in case something isn't clear. Unfortunately, I don't know enough to know what that might be.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source