Hi,
I'm using BIRT Runtime 2.3 in a tomcat web application (linux), to generate a PDF using reports created in Report Designer 2.3 (Windows). I've upload driverManagerPreferences.xml, the Connection Profile file, driverStorage.xml, ServerProfiles.DAT files to the web server under the directory "<blah>/.metadata/.plugins/org.eclipse.datatools.connectivity/", and still BIRT cannot open up a JDBC connection. Stepping through the code, I can tell that the runtime has found all the above files and should have all the information it needs to create a JDBC connection, but fails because it cannot find an instance of a ConnectionFactoryProvider in the class ConnectionProfileProvider.getConnectionFactory() and throws the exception below:
org.eclipse.birt.data.engine.odaconsumer.ConnectionManager openConnection
SEVERE: Cannot open connection.
org.eclipse.datatools.connectivity.oda.OdaException: Unable to open a connection with the database connection profile.
at org.eclipse.birt.report.data.oda.jdbc.dbprofile.impl.Connection.open(Connection.java:76)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaConnection.open(OdaConnection.java:235)
at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:157)
at org.eclipse.birt.data.engine.executor.DataSource.newConnection(DataSource.java:210)
at org.eclipse.birt.data.engine.executor.DataSource.open(DataSource.java:197)
at org.eclipse.birt.data.engine.impl.DataSourceRuntime.openOdiDataSource(DataSourceRuntime.java:214)
at org.eclipse.birt.data.engine.impl.QueryExecutor.openDataSource(QueryExecutor.java:280)
at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:224)
at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:508)
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:189)
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:177)
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:143)
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:470)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:114)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:248)
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1676)
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77)
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45)
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:33)
<snip>
The Connection profile looks like this, with the location of the oracle JDBC drivers changed for unix one:
<?xml version="1.0" encoding="UTF-8"?><DataTools.ServerProfiles version="1.0"><profile autoconnect="No" desc="tahicr02 connection profile" id="39872800-8bc5-11dd-9aef-b248def82266" name="tahicr02" providerID="org.eclipse.datatools.enablement.oracle.connectionProfile"><baseproperties><property name="org.eclipse.datatools.connectivity.db.savePWD" value="true"/><property name="org.eclipse.datatools.connectivity.drivers.defnType" value="org.eclipse.datatools.enablement.oracle.10.driverTemplate"/><property name="jarList" value="/home/tahicr02/BUILD/htdocs/WEB-INF/lib/ojdbc14.jar"/><property name="org.eclipse.datatools.connectivity.db.username" value="*USERNAME*"/><property name="org.eclipse.datatools.connectivity.db.driverClass" value="oracle.jdbc.OracleDriver"/><property name="org.eclipse.datatools.enablement.oracle.catalogType" value="USER"/><property name="org.eclipse.datatools.connectivity.db.databaseName" value="tahicr02"/><property name="org.eclipse.datatools.connectivity.driverDefinitionID" value="DriverDefn.Oracle Thin Driver"/><property name="org.eclipse.datatools.connectivity.db.password" value="*PASSWORD*"/><property name="org.eclipse.datatools.connectivity.db.URL" value="jdbc:oracle:thin:
@*HOST*:1521:*DB_NAME*"/><property name="org.eclipse.datatools.connectivity.db.version" value="10"/><property name="org.eclipse.datatools.connectivity.db.vendor" value="Oracle"/></baseproperties><org.eclipse.datatools.connectivity.versionInfo><property name="server.version" value="0.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options"/><property name="technology.name.jdbc" value="JDBC"/><property name="server.name" value="Oracle"/><property name="technology.version.jdbc" value="10.2.0"/></org.eclipse.datatools.connectivity.versionInfo><driverreference><property name="driverName" value="Oracle Thin Driver"/><property name="driverTypeID" value="org.eclipse.datatools.enablement.oracle.10.driverTemplate"/></driverreference></profile></DataTools.ServerProfiles>
The driverStorage.xml file looks like this, with the location of the oracle JDBC drivers changed for unix one:
<?xml version="1.0" encoding="UTF-8"?>
<DataTools.PropertySets>
<propertySet iD="DriverDefn.Oracle Thin Driver" keys="org.eclipse.datatools.connectivity.drivers.defnType jarList org.eclipse.datatools.connectivity.db.username org.eclipse.datatools.connectivity.db.driverClass org.eclipse.datatools.enablement.oracle.catalogType org.eclipse.datatools.connectivity.db.databaseName org.eclipse.datatools.connectivity.db.password org.eclipse.datatools.connectivity.db.version org.eclipse.datatools.connectivity.db.URL org.eclipse.datatools.connectivity.db.vendor " name="Oracle Thin Driver" prop_jarList="/home/tahicr02/BUILD/htdocs/WEB-INF/lib/ojdbc14.jar" prop_org.eclipse.datatools.connectivity.db.URL="jdbc:oracle:thin:
@*HOST*:1521:*DB_ANME*" prop_org.eclipse.datatools.connectivity.db.databaseName="tahicr02" prop_org.eclipse.datatools.connectivity.db.driverClass="oracle.jdbc.OracleDriver" prop_org.eclipse.datatools.connectivity.db.password="*PASSWORD*" prop_org.eclipse.datatools.connectivity.db.username="*USER*" prop_org.eclipse.datatools.connectivity.db.vendor="Oracle" prop_org.eclipse.datatools.connectivity.db.version="10" prop_org.eclipse.datatools.connectivity.drivers.defnType="org.eclipse.datatools.enablement.oracle.10.driverTemplate" prop_org.eclipse.datatools.enablement.oracle.catalogType="USER"/>
</DataTools.PropertySets>
Can anyone help? What am I missing?
Thanks,
John.