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();
    }

しかし、最後に、たとえばこれを呼び出した後、接続オブジェクトはnullになります

CallableStatement cstmt = connection.prepareCall( jobquery );

データベースでは、アプリケーションが接続を作成したように見えますが、「jobquery」で指定されたプロシージャを呼び出しません。何が間違っている可能性がありますか?

簡単に言うと、例外なくOracleDataSourceを作成し、そこからnullを取得する方法はありますか?

4

2 に答える 2

1

元の質問のコードを見逃さない限り、execute()を実行しなかったようです。

例:

callableStatement.executeQuery();

このCallableStatementチュートリアルを読む

于 2012-09-20T12:50:25.220 に答える
1

ナンバリスの答えはおそらくあなたの当面の問題を解決するでしょう。考慮すべきその他のポイント:

  1. weblogicでは、組み込みのデータソースを実際に使用し、JNDI名で検索する必要があります
  2. 例外がスローされないことを確認しますか、それともstderrに出力したために表示されないだけですか?出力に出力するのではなく、ロギングメカニズムと例外伝播を使用する必要があります。

これらはあなたの問題に直接関係しているのではなく、あなたが長期的にすべきことだけです。

于 2012-09-20T12:55:06.093 に答える