Maven Birt 4.6.0-20160607引发OracleDriver的ClassNotFoundException

Maven Birt 4.6.0-20160607引发OracleDriver的ClassNotFoundException,maven,jakarta-ee,jdbc,birt,ojdbc,Maven,Jakarta Ee,Jdbc,Birt,Ojdbc,我有一个使用Birt 4.6的naven应用程序。下面是我的依赖项 <dependency> <groupId>org.eclipse.birt.ojdbc</groupId> <artifactId>odajdbc</artifactId> <version>4.6.0-201606072122</version> </depende

我有一个使用Birt 4.6的naven应用程序。下面是我的依赖项

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

    <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>
它返回null,然后尝试从上下文获取驱动程序

driverClass = Class.forName( className, true, Thread.currentThread( ).getContextClassLoader()); 
这一次,它最终实现了检索驱动程序


我错过了什么?很明显,它不能从插件加载它,因为我没有任何插件目录。有没有办法克服这个例外

正如Mark提到的,没有必要将org.eclipse.birt.ojdbc添加为依赖项。我停止使用org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122.jar,使用了本地的ojdbc驱动程序

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

com.oracle
ojdbc6
11.2.0.4.0

上面修复了我们第一次尝试加载驱动程序时遇到的异常。

在Birt查看器文件夹(WEB/App服务器端)的
WEB-INF路径下添加
ojdbc7.jar
,为我解决了以下问题:

[1] ../lib  
[2] ../platform/plugins/org.eclipse.birt.report.data.oda.jdbc_<VERSION>/drivers
在上面添加[2]之后(只有[1]):


您应该改为加载
oracle.jdbc.OracleDriver
,但这可能只是因为它已经通过
ServiceLoader
使用jdbc 4(及更高版本)驱动程序加载了,在做了这么多更改之后,我不知该怎么做了。我真的以为我试了很多次都没有成功。这就成功了。非常感谢你,马克
[1] ../lib  
[2] ../platform/plugins/org.eclipse.birt.report.data.oda.jdbc_<VERSION>/drivers
20-Mar-2017 14:12:26.752 SEVERE [http-nio-8080-exec-4] org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.loadExtraDriver DriverClassLoader failed to load class: oracle.jdbc.driver.OracleDriver  java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
20-Mar-2017 14:49:42.196 INFO [http-nio-8080-exec-4] org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$DriverClassLoader.refreshFileURL JDBCDriverManager: found JAR file ojdbc7.jar. URL=file:../WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_4.6.0.v201606072122/drivers/ojdbc7.jar