2016-08-10 41 views
0

我有一個在IBM Bluemix上配置的IBM Message Hub實例。我已經實現了在本地機器上運行的Java Receiver,該機器需要能夠連接到IBM Message Hub的此實例並接收消息。嘗試使用Java和VCAP_SERVICES運行MessageHub接收器時出現錯誤

我應該如何設置VCAP_SERVICES以便可以從Bluemix連接到我的IBM Message Hub實例?當我轉到「服務憑據」選項卡時,我配置了一組憑據。密鑰名稱是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

+0

雖然它提到了kafka 0.9.0,並且您應該使用當前的kafka 0.10.0,但這篇博文可能會對您有所幫助https://developer.ibm.com/messaging/2016/03/03/message-hub-kafka- Java的API /博客暗示你有一個JAAS登錄配置文件,例如登錄配置文件: KafkaClient { com.ibm.messagehub.login.MessageHubLoginModule需要 服務名=「海邊的卡夫卡」 用戶名=「用戶名」 密碼= 「密碼」; }; – ValerieLampkin

回答

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標準輸出。

相關問題