1

この同じコードが異なる結果になるのはなぜですか?

Redis への接続を作成するために Jedis 2.1.0 を使用しています。

方法 A:

private static Jedis getNewJedis() {
        return new Jedis(hostname,port);
    }

.....
public static main(String[] args){
     getNewJedis().ping();
}

方法 B:

public static main(String[] args){
     new Jedis(hostname,port).ping();
}

違いは、再利用を容易にするためにメソッド A が静的メソッドに隠されているため、呼び出されたときにメソッド B と同じ効果があるはずだと考えています。

代わりに、メソッド A を使用すると例外が発生します。メソッド B は正常に動作します。

方法 A 例外:

スレッド「メイン」の例外 redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: 接続が拒否されました: redis.clients.jedis.Connection.connect(Connection.java:134) で redis.clients.jedis に接続します。 redis.clients.jedis.Connection.sendCommand(Connection.java:86) の BinaryClient.connect(BinaryClient.java:69) redis.clients.jedis.BinaryClient.ping(BinaryClient.java:82) の redis.clients.jedis .Jedis.ping(Jedis.java:34) at org.tripodwire.esme.receiver.ReceiverProducer.produceTestJedis(ReceiverProducer.java:168) at org.tripodwire.esme.entry.Entry.main(Entry.java:25)

4

0 に答える 0