0

在本地一切正常,但在远程 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,然后从中获取空值?

4

2 回答 2

1

除非您错过了原始问题中的某些代码,否则您似乎没有执行 execute()。

例子:

callableStatement.executeQuery();

阅读此CallableStatement教程

于 2012-09-20T12:50:25.220 回答
1

Nambaris 的回答可能会解决您的直接问题。其他需要考虑的点:

  1. 在 weblogic 上,您确实应该使用内置数据源并通过 JNDI 名称查找它们
  2. 你确定它不会抛出异常,还是因为在stderr上打印出来而没有看到它?您应该使用日志记录机制和异常传播,而不是打印到输出。

这些与您的问题没有直接关系,只是您从长远来看应该做的事情。

于 2012-09-20T12:55:06.093 回答