簡體   English   中英

通過Azure Java SDK向服務總線主題發送消息時出現500 Internal Server Error

[英]500 Internal Server Error while sending a message to a Service Bus topic through Azure Java SDK

嘗試通過java azure sdk向服務總線主題發送消息時出現問題,我收到500 Internal Server Error。

我基於此鏈接准備了代碼: https : //azure.microsoft.com/zh-cn/documentation/articles/service-bus-java-how-to-use-topics-subscriptions/ ,我的代碼如下所示:

Configuration config = ServiceBusConfiguration.configureWithSASAuthentication(
    "NAMESPACE",
    "SAS_NAME",
    "SAS_KEY_VALUE",
    ".servicebus.windows.net");      
ServiceBusContract service = ServiceBusService.create(config);
try {
    BrokeredMessage message = new BrokeredMessage("Message content");
    service.sendTopicMessage("TOPIC_NAME", message);
} catch (ServiceException e) {
    e.printStackTrace();
}

我可以使用.NET代碼發送具有相同配置值的消息。

這是我收到的異常:“ com.sun.jersey.api.client.UniformInterfaceException:POST https://NAMESPACE.servicebus.windows.net/TOPIC_NAME/messages?api-version=2013-07返回了響應狀態500內部服務器錯誤“

我也有一個關於api版本的問題。 為什么圖書館在請求中放了這么老的api版本? 我使用來自Maven存儲庫的最新版本的Azure SDK:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-servicebus</artifactId>
    <version>0.9.3</version>
</dependency>

我試圖重現您的問題,但未能獲得任何錯誤信息。

根據REST API “發送消息” ,狀態碼為500表示內部錯誤不是由您的客戶端源代碼引起的。

因此,我認為您可以嘗試再次運行代碼。

如果您仍然遇到相同的錯誤或其他錯誤,是否可以分享更多信息以幫助分析問題?

如有任何疑問,請隨時告訴我。

我終於設法找到問題的原因。 真正的錯誤是“找不到具有MessageId ..的消息的匹配訂閱”。 在主題配置中選中“發布前過濾消息”選項並且不存在匹配的訂閱時,將發生此錯誤。

問題在於,對Azure Java SDK使用的Azure REST API的調用(而不是有關找不到匹配的訂閱的信息)僅返回500 Internal Server Error。。只有來自Azure .NET SDK的調用會返回具有有用信息的異常評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM