java.util.ArrayList无法转换为java.lang.Long jedis

时间:2018-07-09 09:22:49

标签: java jedis

我正在使用Redis的Amazon ElastiCach存储一些物品。在一种方法中,我与从JedisPool获得的一名jedis客户端调用redis 3或4次。在最后一次调用redis之后,JedisPool和Jedis均关闭。我称此方法为一分钟50次。它只是在某些时候停止处理消息: 无法将java.lang.Long强制转换为java.util.List 无法将java.util.ArrayList强制转换为java.lang.Long

我应该打个电话给redis吗-来自JedisPool的一个Jedis?

这是我的代码:

AmazonElastiCacheClient client = new AmazonElastiCacheClient(awsElastiCashCredentials);
        Region elastiCachRegion = Region.getRegion(Regions.fromName(amazonProps.getElastiCachRegion()));
        client.setRegion(elastiCachRegion);

        DescribeCacheClustersRequest dccRequest = new DescribeCacheClustersRequest();
        dccRequest.setShowCacheNodeInfo(true);

        DescribeCacheClustersResult clusterResult = client.describeCacheClusters(dccRequest);

        JedisPool pool = null;
        List<CacheCluster> cacheClusters = clusterResult.getCacheClusters();
        for (CacheCluster cacheCluster : cacheClusters) {
            if (cacheCluster.getCacheClusterId().equals("001")) {
                for (CacheNode cacheNode : cacheCluster.getCacheNodes()) {
                    String addr = cacheNode.getEndpoint().getAddress();
                    int port = cacheNode.getEndpoint().getPort();

                    try {
                        pool = new JedisPool(addr, port);
                    } catch (Exception e) {
                        log.error(e.getMessage());
                        e.printStackTrace();
                    }
                }
            }
        }

和方法:

try (JedisPool pool = amazonElastiCacheService.connectToCachCluster()) {
                try (Jedis jedis = pool.getResource()) {

                    fileEmail(jedis);
                        }
                    }
                } catch (Exception e) {
                    log.error(e.getMessage());
                    e.printStackTrace();
                }
            } catch (Exception e) {
                log.error(e.getMessage());
                e.printStackTrace();
            }

1 个答案:

答案 0 :(得分:0)

好像您正在将对象值的列表(ArrayList)分配给Long对象。 请参见line#/ Classmethod并进行修改。
或检查代码中的所有 Long 值分配,其中一些是您为其设置的n ArrayList对象。

例如

Long value;
List<?> myList = new ArrayList<?>();
value = myList ;

我从共享代码中发现任何问题。