【发布时间】:2015-08-20 22:34:10
【问题描述】:
我有一个 Java Web 应用程序,它使用 OracleConnection JDBC 类来执行一些 PL/SQL 命令。由于在我们的生产环境中,Oracle 驱动程序库由其他应用程序共享,我需要使用 provided Maven 依赖范围声明它:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>oracle</artifactId>
<version>11.2.0.4</version>
<scope>provided</scope>
</dependency>
我应该如何配置我的本地 JBoss EAP 6.2 以使这个库可用于我的应用程序?我尝试使用jboss-cli 将其配置为核心模块,如
Install a JDBC Driver as a Core Module。
这是我执行的最后一条命令:
/subsystem=datasources/jdbc-driver=oracle:
add(driver-name=oracle,
driver-module-name=oracle.jdbc,
driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)
命令输出:
{"outcome" => "success"}
但是,在启动时,我们的应用程序会尝试通过 DriverManager 获得连接:
OracleConnection conn = (OracleConnection) DriverManager.getConnection(url, username, password);
这行代码引发了以下异常:
java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@10.50.240.70:1521:doc21a
另一方面,如果我将范围更改为compile,那么 Oracle 库将与我的应用程序一起部署(在 META-INF/lib 文件夹中)并且一切正常。
我该如何解决这个问题?核心模块适合这个吗?
还有其他方法可以使用 JBoss 与多个应用程序共享库吗?
【问题讨论】:
-
我被这个问题困扰了一周。我以为这很容易。这似乎是普通的事情。
标签: java configuration jboss war