zooKeeper在weblogic下的bug

<input id="ggpt" type="hidden" value="fw:lw">

因为项目中需要使用分布式配置管理,所以使用了ZooKeeper,ZooKeeper的客户端使用的是zookeeper-3.4.5.jar原来使用的2.3.3版本,后来升级到了2.4.5升级版本,在本地调试总是正确的,但是放置到weblogic下就不行了,发现在weblogic10下竟然无法使用一直报错: 

01/08 10:41:21 [WARN] ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnectjava.lang.IllegalArgumentException: No Configuration was registered that can handle the configuration named Client at com.bea.common.security.jdkutils.JAASConfiguration.getAppConfigurationEntry(JAASConfiguration.java:130) at org.apache.zookeeper.client.ZooKeeperSaslClient.(ZooKeeperSaslClient.java:97) at org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:943) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:993) 

觉得很奇怪,最后找到了源代码,发现原来是因为ZooKeeper客户端 默认使用JAAS方式认证,即使你不配置认证,客户端也会去首先尝试使用认证方式连接,抛错拦截后再使用非认证的方式去连接。

但是ZooKeeper 认证这段代码抛出的异常类型是SecurityException,而weblogic下的JAAS的认证抛出的却是RuntimeException ,所以捕获不到,所以会一直报错,无法连接。 

解决办法:
1 修改ZooKeeperSaslClient 类的代码,将抛出的异常类型改为RuntimeException 。
 2 升级到2.4.6 或者回退到较早的版本。 

关于该问题已经有人上报了问题,相信在新版本,apache应该会尽快解决。https://issues.apache.org/jira/i#browse/ZOOKEEPER-1696

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值