tomcat - 为什么 JDBC 驱动程序调用在 Tomcat 中有效,但在 JBOSS 中无效

标签 tomcat jdbc jboss connection

我有一个应用程序使用 DriverManager

中的以下方法通过 Tomcat 连接到数据库
DriverManager.getConnection(url, user,password);

这在 Tomcat 中运行良好,完全没有问题。

但是当我将同一个应用程序移植到 JBOSS 时,连接总是返回 NULL

我有一些要求会阻止我通过使用 DriverManager.getConnection(url) 访问 JNDI 资源来建立 JDBC 连接;

有谁知道为什么会发生这种情况,或者我该如何解决?

这是我收到的堆栈跟踪......

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at TestSterlingConnection.getStrelingDBDetails(TestSterlingConnection.java:48)
    at TestSterlingConnection.makeCall(TestSterlingConnection.java:95)
    at TestSterlingConnection.doGet(TestSterlingConnection.java:77)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

最佳答案

可能是因为合适的 JDBC 驱动程序不在您的类路径中。驱动程序现在使用 ServiceLoader (META-INF/services) 机制自动注册自己。所以它只需要在类路径上。 DriverManager.getConnection 扫描已注册的驱动程序以找到与 url 模式匹配的驱动程序(即 oracle、postgres 等)。您的 Tomcat 实例可能在其中一个 lib 目录中有一个 jdbc jar 文件。

关于tomcat - 为什么 JDBC 驱动程序调用在 Tomcat 中有效,但在 JBOSS 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290946/

相关文章:

mysql - 错误 : com. mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

java - 既然jdbc是一个接口(interface),我们如何在jdbc中使用prepare语句

Java JDBC 效率 : How long should a connection be maintained?

java - Wildfly Swarm RESTeasy 隐藏 webapp/index.html

hibernate - 缓存条目未使用

tomcat - Windows Server 2012 - Amazon ec2 Web 服务器无法使用公共(public) IP 从外部访问

tomcat - 远程服务器上的 Cargo Maven

java - 带有eclipse的本地tomcat尝试运行jsp

java - 如何使用jboss在hibernate中配置缓存? ?并在 kumud 控制台中进行测试?

java - 在达到 Max 之前 PermGen 空间不足