本地一切正常,但在远程 Weblogic 上则不然。接下来的代码运行没有任何异常。
try
{
ods = new OracleDataSource();
connectionString = XmlReader.getConnectionString();
ods.setURL(connectionString);
}
catch (SQLException ex)
{
ex.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
当我在前一个 ods 对象上调用 getConnection() 时,它不会引发任何异常
try
{
if (connection == null || connection.isClosed()) {
connection = ods.getConnection();
}
}
catch(Exception e) {
e.printStackTrace();
}
但最终连接对象为空 例如调用此之后
CallableStatement cstmt = connection.prepareCall( jobquery );
在数据库上,应用程序似乎创建了连接,但随后它不会调用“jobquery”中指定的过程。可能出了什么问题?
我的问题是:有没有办法创建一个没有异常的 OracleDataSource,然后从中获取 null?
最佳答案
Nambaris answer可能会解决您眼前的问题。其他需要考虑的要点:
- 在 weblogic 上,你确实应该使用内置 datasources并通过 JNDI 名称查找它们
- 您确定它不会引发异常,或者您只是因为在 stderr 上打印它而没有看到它?您应该使用日志记录机制和异常传播,而不是打印到输出。
这些与您的问题没有直接关系,只是从长远来看您应该做的事情。
关于java - 来自 weblogic 的数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12512953/