1

我有实现 Runnable 并在 bluemix 中实例化 kafka 消费者的 java 类。尝试实例化时,此类抛出异常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"
};
4

1 回答 1

4

根据“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 配置。

这是一个链接,您可以在其中找到有关如何配置 Liberty 的更多信息

于 2016-03-24T13:59:36.657 回答