Kafka 消费者 init 抛出异常:找不到 'KafkaClient' 条目
Kafka consumer init throws exception: Could not find a 'KafkaClient' entry
我 java class 在 bluemix 中实现了 Runnable 并实例化了 kafka 消费者。此 class 在尝试实例化 KafkaConsumer
时抛出以下异常。 jaas.conf
文件存储在共享目录中。这在过去 1 个月内运行良好。它今天开始抛出这个错误。我不记得对我的代码进行过任何更改。我正在使用 kafka-client 0.9.0.0。我也尝试使用 kafka 客户端 0.9.0.1,结果相同。
org.apache.kafka.common.KafkaException:
java.lang.IllegalArgumentException: Could not find a
'KafkaClient' entry in `/home/vcap/app/wlp/usr/shared/config/lib
/global/jaas.conf`.
文件 jaas.conf 存在于它正在查找的位置并且
里面有以下内容。
KafkaClient {
com.ibm.messagehub.login.MessageHubLoginModule required
serviceName="kafka"
username="xxxxxxx"
password="xxxxxxx"
};
根据 "jass.conf" 文件的路径,我假设您是 运行 Bluemix 中的 Liberty 应用程序,如果是这种情况,那么您必须确保将 jaasLoginModule 指定到 server.xml 如下:
<featureManager>
<feature>appSecurity-2.0</feature>
</featureManager>
<library id="messageHubLoginLib">
<fileset dir="${server.config.dir}" includes="messagehub.login-1.0.0.jar"/>
</library>
<jaasLoginModule id="KafkaClient"
className="com.ibm.messagehub.login.MessageHubLoginModule"
controlFlag="REQUIRED" libraryRef="messageHubLoginLib">
<options serviceName="kafka" username="#USERNAME" password="#PASSWORD"/>
</jaasLoginModule>
<jaasLoginContextEntry id="KafkaClient" name="KafkaClient" loginModuleRef="KafkaClient" />
注意:澄清一下,如果您在 Bluemix 中使用 Liberty 应用程序,那么当前的 JAAS 配置不会使用该 jaas.conf 文件。因此必须使用 server.xml 如上所述的配置。
这里是 link 您可以在其中找到有关如何配置 Liberty 的更多信息
我 java class 在 bluemix 中实现了 Runnable 并实例化了 kafka 消费者。此 class 在尝试实例化 KafkaConsumer
时抛出以下异常。 jaas.conf
文件存储在共享目录中。这在过去 1 个月内运行良好。它今天开始抛出这个错误。我不记得对我的代码进行过任何更改。我正在使用 kafka-client 0.9.0.0。我也尝试使用 kafka 客户端 0.9.0.1,结果相同。
org.apache.kafka.common.KafkaException:
java.lang.IllegalArgumentException: Could not find a
'KafkaClient' entry in `/home/vcap/app/wlp/usr/shared/config/lib
/global/jaas.conf`.
文件 jaas.conf 存在于它正在查找的位置并且 里面有以下内容。
KafkaClient {
com.ibm.messagehub.login.MessageHubLoginModule required
serviceName="kafka"
username="xxxxxxx"
password="xxxxxxx"
};
根据 "jass.conf" 文件的路径,我假设您是 运行 Bluemix 中的 Liberty 应用程序,如果是这种情况,那么您必须确保将 jaasLoginModule 指定到 server.xml 如下:
<featureManager>
<feature>appSecurity-2.0</feature>
</featureManager>
<library id="messageHubLoginLib">
<fileset dir="${server.config.dir}" includes="messagehub.login-1.0.0.jar"/>
</library>
<jaasLoginModule id="KafkaClient"
className="com.ibm.messagehub.login.MessageHubLoginModule"
controlFlag="REQUIRED" libraryRef="messageHubLoginLib">
<options serviceName="kafka" username="#USERNAME" password="#PASSWORD"/>
</jaasLoginModule>
<jaasLoginContextEntry id="KafkaClient" name="KafkaClient" loginModuleRef="KafkaClient" />
注意:澄清一下,如果您在 Bluemix 中使用 Liberty 应用程序,那么当前的 JAAS 配置不会使用该 jaas.conf 文件。因此必须使用 server.xml 如上所述的配置。
这里是 link 您可以在其中找到有关如何配置 Liberty 的更多信息