部门kafka升级由之前的0.8版本升级到1.0以上,调试的时候报下面的错误,网上也没搜到相关内容,最后发现是因为java进程启动参数之一直指定了依赖文件路径: -Djava.ext.dirs=$BASEDIR,而这种写法会覆盖默认的ext值:jre/lib/ext,新版kafka认证对其下的包有依赖
改正: -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:$BASEDIR
报错内容如下
org.apache.kafka.common.KafkaException: Failed to construct kafka consumer
.........................其它报错省略..............................
Caused by: javax.security.auth.login.LoginException: java.lang.IllegalArgumentException: EncryptionKey: Key bytes cannot be null!
at sun.security.krb5.EncryptionKey.<init>(EncryptionKey.java:241)
at sun.security.krb5.EncryptionKey.acquireSecretKey(EncryptionKey.java:189)
at sun.security.krb5.EncryptionKey.acquireSecretKey(EncryptionKey.java:174)
at sun.security.krb5.KrbAsRe

在将部门的kafka从0.8版本升级到1.0以上时,遇到一个启动消费者时的错误:Failed to construct kafka consumer,原因是-Djava.ext.dirs配置覆盖了默认的jre/lib/ext路径,导致认证依赖包缺失。修正方法是在启动参数中添加$JAVA_HOME/jre/lib/ext,如:-Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:$BASEDIR。这解决了Kerberos登录时EncryptionKey异常的问题。
最低0.47元/天 解锁文章
3178

被折叠的 条评论
为什么被折叠?



