6
Jedisでレスポンスオブジェクトを使用すると、ClassCastExceptionがスローされます。私はパイプラインを使用すると、Redisから何の価値も得られません。助けてください。私はJedis 2.1.0を使用していますJedisのレスポンスオブジェクト - ClassCastExceptionをスローする
public class JedisPipeline {
public static void main(String args[]){
final JedisPool pool = new JedisPool(new JedisPoolConfig(), "127.0.0.1", 6379);
Jedis jedis = pool.getResource();
Pipeline pipeline = jedis.pipelined();
pipeline.multi();
HashMap<String,String> map = new HashMap<String,String>();
map.put("50", "50");
pipeline.hmset("Id",map);
Response <Long> incr = pipeline.hincrBy("Id", "100", 100);
Response<Map<String,String>> map1 = pipeline.hgetAll("Id");
pipeline.exec();
List<Object> results = pipeline.syncAndReturnAll();
System.out.println(results);
System.out.println(incr.get());
System.out.println(map1.get());
pool.returnResource(jedis);
pool.destroy();
}
}
Exception in thread "main" java.lang.ClassCastException: [B cannot be cast to java.lang.Long
at redis.clients.jedis.BuilderFactory$4.build(BuilderFactory.java:45)
at redis.clients.jedis.BuilderFactory$4.build(BuilderFactory.java:48)
at redis.clients.jedis.Response.get(Response.java:27)
at redis.clients.jedis.Pipeline.syncAndReturnAll(Pipeline.java:42)
at com.work.jedis.JedisPipeline.main(JedisPipeline.java:28)
Jedis 2.1.0とRedis 2.4.14をJava 6とMac OS X上で動作させています。私はRedisに奇妙な値を書こうとしましたが、「正しい」エラーが出ていますが、確かにClassCastExceptionはありません。共有できる詳細(バージョン、プラットフォーム、データなどについて) –
あなたは正しいです。私が使用したjarファイルに競合がありました。私は間違ってjedis 2.1.0とjedis 2.0.0の両方をビルドパスに入れました。ありがとう – user1182253