gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 23:47:36 30 4
gpt4 key购买 nike

我有一个应用程序使用 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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com