0

我成功地將消息發佈到Pub/Sub主題中,直到昨天。但從今天早上起,代碼在出版過程中會永遠被吊死。我的問題與描述here相同。 然後我試圖創建一個使用Java API的一個話題,因爲在代碼片段描述如下使用Java API時,GCP Pub/Sub Publisher進程永遠掛起

TopicName topic = TopicName.create(projectId, topicId); 

try { 
    TopicAdminClient topicAdminClient = TopicAdminClient.create(); 
    topicAdminClient.createTopic(topic); //HANG FOREVER 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

的代碼被再次掛在topicAdminClient.createTopic

我正在使用com.google.pubsub.v1封裝的GCP Pub/Sub以及com.google.cloud.pubsub.v1.TopicAdminClient。我嘗試使用默認身份驗證憑據以及設置GOOGLE_APPLICATION_CREDENTIAL服務帳戶密鑰。我不確定我做錯了什麼。任何人都可以幫我解決這個問題嗎?

我的代碼來發布消息如下

FileInputStream fis = new FileInputStream(new File("JSON file path")); 
ApiFuture<String> messageId = publishMessage(publisher, 
ByteString.copyFrom(IOUtils.toByteArray(fis))); 

其中publishMessage定義如下

private static ApiFuture<String> publishMessage(Publisher publisher, ByteString message) 
      throws Exception { 
    // convert message to bytes 
    PubsubMessage pubsubMessage = 
    PubsubMessage.newBuilder().setData(message).build(); 
    return publisher.publish(pubsubMessage); 
} 

附加信息: 我試圖執行數據存儲的Java API,它無縫地執行。也許這個問題只是在我猜測Pubsub的時候。

回答

0

好的,問題已解決。我錯誤地忘了在pom文件中提到包裝類型。一旦我提到包裝類型爲jar(jar),它就開始工作。