我有一个应用程序通过Tomcat使用DriverManager
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)
答案 0 :(得分:0)
可能是因为类路径上没有合适的JDBC驱动程序。驱动程序现在使用ServiceLoader
(META-INF / services)机制自动注册。所以它只需要在类路径上。 DriverManager.getConnection
扫描注册的驱动程序以找到与url模式匹配的驱动程序(即oracle,postgres,等等)。您的Tomcat实例可能在其中一个lib目录中有一个jdbc jar文件。
答案 1 :(得分:0)
我通过在容器外的此框上执行相同的调用来消除JBOSS。当我这样做时,我得到相同的错误消息,这使我相信这个问题是由某些网络配置引起的。我现在正在升级到负责维护此服务器的管理员。
非常感谢!!我非常感谢你的帮助。