BIRT report with JDBC datasource throws exceptions
Hi.
I have a report wich uses a JDBC datasource among other JAZZ Data Source. When I try to view the report in RTC I get an exception, basically related to the JDBC, but the files are in the /server/sqlserver directory, so I'm not sure how to solve the problem.
The exception text is the next
Los elementos siguientes tienen errores:
Table (id = 9):
- Se ha producido una excepcin durante el proceso. Consulte el mensaje siguiente para conocer los detalles:
No se puede abrir la conexin para el controlador org.eclipse.birt.report.data.oda.jdbc
No se puede cargar la clase de controlador JDBC: com.microsoft.sqlserver.jdbc.SQLServerDriver.
exception.error ( 1 veces )
detalle : org.eclipse.birt.report.engine.api.EngineException: Se ha producido una excepcin durante el proceso. Consulte el mensaje siguiente para conocer los detalles:
No se puede abrir la conexin para el controlador org.eclipse.birt.report.data.oda.jdbc
No se puede cargar la clase de controlador JDBC: com.microsoft.sqlserver.jdbc.SQLServerDriver.
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1215)
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1179)
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:96)
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) ..........
I have a report wich uses a JDBC datasource among other JAZZ Data Source. When I try to view the report in RTC I get an exception, basically related to the JDBC, but the files are in the /server/sqlserver directory, so I'm not sure how to solve the problem.
The exception text is the next
Los elementos siguientes tienen errores:
Table (id = 9):
- Se ha producido una excepcin durante el proceso. Consulte el mensaje siguiente para conocer los detalles:
No se puede abrir la conexin para el controlador org.eclipse.birt.report.data.oda.jdbc
No se puede cargar la clase de controlador JDBC: com.microsoft.sqlserver.jdbc.SQLServerDriver.
exception.error ( 1 veces )
detalle : org.eclipse.birt.report.engine.api.EngineException: Se ha producido una excepcin durante el proceso. Consulte el mensaje siguiente para conocer los detalles:
No se puede abrir la conexin para el controlador org.eclipse.birt.report.data.oda.jdbc
No se puede cargar la clase de controlador JDBC: com.microsoft.sqlserver.jdbc.SQLServerDriver.
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1215)
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1179)
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:96)
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) ..........
8 answers
BIRT expects the driver files under:
org.eclipse.birt.report.data.oda.jdbc_2.5.2.v20100205\drivers
You will need to locate that folder in the server and add the files there (jazz server must be shutdown). Make sure to clear Tomcat's work folder.
Hi Mr.
I have copied the 4 files for the db2 connection and i get this error :
+ An exception occurred during processing. Please see the following message for details:
Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc.
Cannot load JDBC Driver class: com.ibm.db2.jcc.DB2Driver.
Exactly what files do i have to copy?
I have copied :
-db2jcc.jar
-db2jcc_license_cisuz.jar
db2jcc_license_cu.jar
-db2java.zip
In the folder you mentioned. Not exatly the same folder but with some numbers changed.
Please specify the exact steps you used including where you added the driver files.
Hi
1.- I created a JDBC Datasource and add this files using the "Manage Drivers" :
-db2jcc.jar
-db2jcc_license_cisuz.jar
-db2jcc_license_cu.jar
-db2java.zip
2.- Made my report and it worked well in the preview tab.
3.- I Copied the 4 files into the folder :
D:\IBM\Rational\Shared\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.1.r22x_v20070919\drivers
3.- Upload the report to the RTC
4.- Restart the RTC
5.- Deploy the report.
I got this to work using WebSphere, now my BIRT report pulls data from both the Jazz DB and a different DB at the same time.
The steps should be the same for Tomcat with the exception of the location of the temp directories in step 11.
I hope this helps.
1. Stop the Jazz service that's running.
2. On your server do a search for org.eclipse.birt.report.data.oda.jdbc*.jar, you should find it in 3 places. Be sure to take note of the JAR file owner and permissions.
Example:
<install_dir>/server/conf/jts/sites/update-site/plugins
<install_dir>/server/conf/ccm/sites/update-site/plugins
<install_dir>/server/conf/qm/sites/update-site/plugins
3. Make a backup of the org.eclipse.birt.report.data.oda.jdbc*.jar files
4. Did you complete step 3?
5. Unzip the org.eclipse.birt.report.data.oda.jdbc*.jar.
6. If the JAR file that you just unzipped still exists, then delete it so you only have the unzipped directory of the JAR file.
7. In the newly created directory org.eclipse.birt.report.data.oda.jdbc* you will find a subdirectory named "drivers", copy your jdbc drivers and licenses into this directory.
Example:
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc4.jar
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc.jar
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc_license_cisuz.jar
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc_license_cu.jar
8. JAR up the org.eclipse.birt.report.data.oda.jdbc* directory, be sure the JAR has the same name of the original JAR (including version number) that you unzipped.
9. Set the appropriate owner and permissions on the new JAR file, they should be the same as the original JAR.
10. You can either repeat the above steps for each org.eclipse.birt.report.data.oda.jdbc*.jar file or you can just replace the remaining org.eclipse.birt.report.data.oda.jdbc*.jar files with the new org.eclipse.birt.report.data.oda.jdbc*.jar, they are all the same.
11. Clear your WebSphere Application Server temp directories (temp and wstemp).
Example:
/opt/ibm/WebSphere/was7/AppServer/profiles/jazz/temp
/opt/ibm/WebSphere/was7/AppServer/profiles/jazz/wstemp
12. Change to the "server" directory in your Jazz installation path.
Example: <install_dir>/server
13. In the "server" directory you should see the below files, if you do not see them then perform a search for them.
repotools-ccm.sh
repotools-jts.sh
repotools-qm.sh
14. Execute each of the repotools files using the "-clean -version" options.
Example:
./repotools-ccm.sh -clean -version
./repotools-jts.sh -clean -version
./repotools-qm.sh -clean -version
15. Restart your Jazz service.
The steps should be the same for Tomcat with the exception of the location of the temp directories in step 11.
I hope this helps.
1. Stop the Jazz service that's running.
2. On your server do a search for org.eclipse.birt.report.data.oda.jdbc*.jar, you should find it in 3 places. Be sure to take note of the JAR file owner and permissions.
Example:
<install_dir>/server/conf/jts/sites/update-site/plugins
<install_dir>/server/conf/ccm/sites/update-site/plugins
<install_dir>/server/conf/qm/sites/update-site/plugins
3. Make a backup of the org.eclipse.birt.report.data.oda.jdbc*.jar files
4. Did you complete step 3?
5. Unzip the org.eclipse.birt.report.data.oda.jdbc*.jar.
6. If the JAR file that you just unzipped still exists, then delete it so you only have the unzipped directory of the JAR file.
7. In the newly created directory org.eclipse.birt.report.data.oda.jdbc* you will find a subdirectory named "drivers", copy your jdbc drivers and licenses into this directory.
Example:
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc4.jar
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc.jar
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc_license_cisuz.jar
.../org.eclipse.birt.report.data.oda.jdbc*/drivers/db2jcc_license_cu.jar
8. JAR up the org.eclipse.birt.report.data.oda.jdbc* directory, be sure the JAR has the same name of the original JAR (including version number) that you unzipped.
9. Set the appropriate owner and permissions on the new JAR file, they should be the same as the original JAR.
10. You can either repeat the above steps for each org.eclipse.birt.report.data.oda.jdbc*.jar file or you can just replace the remaining org.eclipse.birt.report.data.oda.jdbc*.jar files with the new org.eclipse.birt.report.data.oda.jdbc*.jar, they are all the same.
11. Clear your WebSphere Application Server temp directories (temp and wstemp).
Example:
/opt/ibm/WebSphere/was7/AppServer/profiles/jazz/temp
/opt/ibm/WebSphere/was7/AppServer/profiles/jazz/wstemp
12. Change to the "server" directory in your Jazz installation path.
Example: <install_dir>/server
13. In the "server" directory you should see the below files, if you do not see them then perform a search for them.
repotools-ccm.sh
repotools-jts.sh
repotools-qm.sh
14. Execute each of the repotools files using the "-clean -version" options.
Example:
./repotools-ccm.sh -clean -version
./repotools-jts.sh -clean -version
./repotools-qm.sh -clean -version
15. Restart your Jazz service.
I followed the instructions that Karl said, however I´m having this error message when I run the report:
0000001d ReportEngine E Error happened while running the report.
java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/TDSChannel$PermissiveX509TrustManager
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1345)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1042)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$WrappedDriver.connect(JDBCDriverManager.java:1162)
I will appreciate your help.
0000001d ReportEngine E Error happened while running the report.
java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/TDSChannel$PermissiveX509TrustManager
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1345)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1042)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$WrappedDriver.connect(JDBCDriverManager.java:1162)
I will appreciate your help.