WebLogic 12c にデプロイされた WebApp から HBase サーバーに接続しようとしています。
WebApp は、HBase クライアント接続コードを含む jar ファイルを使用します。このコードは、HTablePool のインスタンスを介して HBase に接続します。このインスタンスは、HTable の最初のリクエストが行われたときに次のように遅延初期化されます。
public HTableInterface getTable(String tableName) {
if (pool == null) {
logger.info("Initializing connection to HBase");
final Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "<HBaseHost>");
pool = new HTablePool(config, Integer.MAX_VALUE);
logger.info("HTable pool created");
}
return = pool.getTable(tableName);
}
このコードは、JUnit から呼び出された場合 (つまり、WebLogic にデプロイしなくても) 正常に機能します。ただし、WL にデプロイされて WebApp から呼び出されると、次の例外がスローされます (すべての特定の接続の詳細を 、 などで置き換えたことに注意してください。
情報: クライアント接続を開始しています。 .ソケット接続を閉じて再接続しようとしていますorg.apache の .client.ZooKeeperSaslClient.(ZooKeeperSaslClient.java:92)。Zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:938) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:973) 13/06/14 17:28:07 警告 Zookeeper.RecoverableZooKeeper: おそらく一時的ZooKeeper 例外: org.apache.zookeeper.KeeperException$ConnectionLossExce ption: KeeperErrorCode = ConnectionLoss for /hbase/master 13/06/14 17:28:07 INFO util.RetryCounter: 再試行 #1 の前に 2000 ミリ秒スリープ中...#1 を再試行する前に 2000 ミリ秒スリープ中...#1 を再試行する前に 2000 ミリ秒スリープ中...
WL からの発信接続を許可するための追加の JAAS 構成が欠落しているように見えますか?
どんな助けでも大歓迎です。