【发布时间】:2017-01-09 06:18:02
【问题描述】:
我有一个 Java EE 项目,我在其中包含 Birt 运行时作为 maven 依赖项:
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.6.0-20160607</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.apache.xerces</artifactId>
</exclusion>
<exclusion>
<artifactId>org.apache.poi</artifactId>
<groupId>org.eclipse.birt.runtime</groupId>
</exclusion>
</exclusions>
</dependency>
引擎似乎已创建(至少我希望如此)。在我的报告中,我定义了数据源设置。
<data-sources>
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="somename" id="43">
<list-property name="privateDriverProperties">
<ex-property>
<name>contentBidiFormatStr</name>
<value>ILYNN</value>
</ex-property>
<ex-property>
<name>metadataBidiFormatStr</name>
<value>ILYNN</value>
</ex-property>
</list-property>
<property name="odaDriverClass">oracle.jdbc.driver.OracleDriver</property>
<property name="odaURL">jdbc:oracle:thin:@host...</property>
<property name="odaUser">username</property>
<encrypted-property name="odaPassword" encryptionID="base64">password</encrypted-property>
</oda-data-source>
</data-sources>
不幸的是,Birt 似乎找不到 ojdbc 驱动程序(注意,我们使用的是 oracle 数据库)并且我们收到以下错误:
严重 [org.eclipse.birt.data.engine.odaconsumer](默认任务 20) 无法打开连接。: org.eclipse.birt.report.data.oda.jdbc.JDBCException:无法加载 JDBC 驱动类:oracle.jdbc.driver.OracleDriver。
我已在 WEB-INF/lib 下的 Web 模块中包含以下 jar org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar 但我仍然遇到相同的错误。
有没有办法通过将 ojdbc 添加为 maven 依赖项来解决这个问题,或者有其他解决方法吗?
更新:我还尝试添加 org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar 作为 maven 依赖项。
<!-- Oracle JDBC driver -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>ojdbc</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}\src\main\resources\lib\org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar</systemPath>
</dependency>
我遇到了同样的错误。波纹管堆栈跟踪的某些部分:
2017-01-05 13:07:11,990 严重 [org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager](默认 task-45) DriverClassLoader 加载类失败: oracle.jdbc.driver.OracleDriver:java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 在 org.eclipse.birt.core.framework.URLClassLoader.findClass1(URLClassLoader.java:188)
......
......
2017-01-05 13:07:12,020 严重 [org.eclipse.birt.data.engine.odaconsumer](默认task-45)无法 打开连接。:org.eclipse.birt.report.data.oda.jdbc.JDBCException: 无法加载 JDBC 驱动程序类:oracle.jdbc.driver.OracleDriver。 在 org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.findDriver(JDBCDriverManager.java:881)
更新 2:我进行了进一步的更改,但仍然没有成功。我在 WEB-INF 和 MEtA-INF 下的所有模块中添加了 org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar 库
\src\main\webapp\WEB-INF\lib\org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar
结果大同小异:
2017-01-05 15:40:49,927 严重 [org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager](默认 task-19) DriverClassLoader 加载类失败: org.eclipse.birt.report.data.oda.jdbc: java.lang.ClassNotFoundException: org.eclipse.birt.report.data.oda.jdbc
我还想在这里指出一些事情。为了我们在应用程序中的持久性,我们在 Wildfly 上使用了一个数据源,其中我们使用 ojdbc 驱动程序作为 Wildfly 10 中的一个模块。
我对 Birt + ojdbc 的想法慢慢用完了
【问题讨论】:
-
嗨,如果我没记错的话,你的更新已经结束了 2. 你的项目中有插件文件夹吗?例如:plugins\org.eclipse.birt.report.data.oda.jdbc_X.X.X\drivers ?
-
是的,我很接近。谢谢
标签: oracle maven jakarta-ee birt ojdbc