Maven Birt 4.6.0-20160607引发OracleDriver的ClassNotFoundException
我有一个使用Birt 4.6的naven应用程序。下面是我的依赖项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
<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