![](/img/trans.png)
[英]Connecting to Azure service bus through a proxy server using Java SDK 0.9.7
[英]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.