首页 文章

无法在Birt 4.6.0-20160607中加载JDBC驱动程序类

提问于
浏览
1

我有一个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数据库),我们收到以下错误:

SEVERE [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依赖项来解决这个问题,还是有其他解决方法吗?

Update: 我也试图将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>

我得到了同样的错误 . bellow堆栈跟踪的一部分:

2017-01-05 13:07:11,990 SEVERE [org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager](默认任务-45)DriverClassLoader无法加载类:oracle.jdbc.driver.OracleDriver:java .lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver at org.eclipse.birt.core.framework.URLClassLoader.findClass1(URLClassLoader.java:188) ...... ...... 2017-01-05 13:07:12,020 SEVERE [org.eclipse.birt.data.engine.odaconsumer](默认任务-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)

Update 2: 我做了进一步的改动但仍然没有成功 . 我在WEB-INF和MEtA-INF下的所有模块中添加了org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar库

\ SRC \主\ web应用\ WEB-INF \ lib中\ org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar

结果完全相同:

2017-01-05 15:40:49,927 SEVERE [org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager](默认任务-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的想法

1 回答

  • 1

    终于解决了这个问题 . 我必须在我的本地manen存储库中安装oda jdbc驱动程序,并将其作为依赖项添加到我的ejb模块中 .

    <dependency>
             <groupId>org.eclipse.birt.ojdbc</groupId>
             <artifactId>odajdbc</artifactId>
             <version>4.6.0-201606072122</version>
         </dependency>
    

    此外,由于某些我无法解释的原因,Birt还需要我的web模块中的ojdbc6驱动程序 . 老实说,我无法理解为什么,因为整个birt实现和运行时都在ejb模块中 .

    <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.4.0</version>
        </dependency>
    

    这解决了问题,现在报告正在生成 .

    我现在面临两个我必须解决的新问题 .

    1) java.lang.OutOfMemoryError: Java heap space :我在Eclipse bugzilla中发现这个问题可以通过ojdbc7驱动程序解决 . 除非我将服务器-Xmx推到1400mb以上,否则不会生成报告

    2) [org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager] (default task-20) DriverClassLoader failed to load class: oracle.jdbc.driver.OracleDriver: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver :由于某种原因,当我想生成报告时,我只得到一次此错误 . 生成的报告没有问题,异常再也不会出现 .

    至少报告现在正在运行,可以继续解决其他问题 .

相关问题