尝试使用Java和VCAP_SERVICES运行MessageHub Reciever时出错

时间:2016-08-10 19:47:02

标签: java ibm-cloud message-hub

我在Bluemix上配置了IBM Message Hub实例。我已经实现了在我的本地机器上运行的Java Receiver,它需要能够连接到IBM Message Hub的这个实例,并接收消息。

我应该如何设置VCAP_SERVICES以便从Bluemix连接到IBM Message Hub实例?当我转到Service Credentials选项卡时,我配置了一组凭据。关键名称是MHCredentials。它的JSON值是:

{
  "mqlight_lookup_url": "https://mqlight-lookup-prod01.messagehub.services.us-south.bluemix.net/Lookup?serviceId=26f5f662-b757-43dc-8fcc-810c8d3fbeec",
  "api_key": "DXXXXXXXXXXXXXXXXXXXXXXXXXXXXx",
  "kafka_admin_url": "https://kafka-admin-prod01.messagehub.services.us-south.bluemix.net:443",
  "kafka_rest_url": "https://kafka-rest-prod01.messagehub.services.us-south.bluemix.net:443",
  "kafka_brokers_sasl": [
    "kafka01-prod01.messagehub.services.us-south.bluemix.net:9093",
    "kafka02-prod01.messagehub.services.us-south.bluemix.net:9093",
    "kafka03-prod01.messagehub.services.us-south.bluemix.net:9093",
    "kafka04-prod01.messagehub.services.us-south.bluemix.net:9093",
    "kafka05-prod01.messagehub.services.us-south.bluemix.net:9093"
  ],
  "user": "DXXXXXXXXXXXXXXXXXXXx",
  "password": "3XXXXXXXXXXXXXXXXXXXXXXXXX"
}

请告诉我应该如何设置我的VCAP_SERVICES,以便我可以从我的本地计算机上运行的接收器连接到MessageHub。我已经在我的机器上创建了一个环境变量,名为:VCAP_SERVICES,上面显示了JSON字符串。但是,当我运行接收器时出现错误:Not a JSON Array

1 个答案:

答案 0 :(得分:1)

IBM Messaging已经创建了一个关于如何开始使用MessageHub的教程视频。该视频应涵盖连接服务的基础知识:

https://www.youtube.com/watch?v=tt-bLtFzC_4

您的“非JSON数组”错误表明您的VCAP_SERVICES环境变量不正确,实际上它是无效的JSON?

您可以尝试开发一个非常小的应用程序,除了打印出VCAP_SERVICES环境变量之外别无其他功能。然后你可以在你的笔记本电脑上本地运行它,并将它部署到Bluemix中来比较两者,看看有什么区别?

public class VcapPrinter {
    public static void main(String[] args) {
        String vcapServices = System.getenv("VCAP_SERVICES");
        System.out.println(vcapServices);
    }
}

您可能需要稍微聪明一点,并保持应用程序处于活动状态,以便您可以检查Bluemix中的STDOUT。