2016-04-25 5 views
0

Ich habe ein Problem, wenn ich versuche, eine Nachricht an einen Service Bus-Thema durch Java Azure SDK zu senden, erhalte ich 500 Internal Server Error.500 Interner Serverfehler beim Senden einer Nachricht an ein Service Bus-Thema über Azure Java SDK

vorbereitet I-Code basierend auf diesen Link: https://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-topics-subscriptions/ und mein Code sieht aus wie folgt:

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(); 
} 

Ich bin in der Lage eine Nachricht mit den gleichen Konfigurationswerte mit .NET-Code zu senden.

Und hier ist die Ausnahme, die ich erhalten:

Ich habe auch eine Frage zu API-: „com.sun.jersey.api.client.UniformInterfaceException POST https://NAMESPACE.servicebus.windows.net/TOPIC_NAME/messages?api-version=2013-07 einen Antwortstatus von 500 Internal Server Error zurückgegeben“ Ausführung. Warum hat eine Bibliothek eine so alte API-Version in die Anfrage eingefügt? Ich verwende die neueste Version von Azure SDK von Maven-Repository:

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

Antwort

0

Ich finde endlich den Grund des Problems. Der eigentliche Fehler ist "Es wurde kein übereinstimmendes Abonnement für die Nachricht mit MessageId .." gefunden. Dieser Fehler tritt auf, wenn in einer Topic-Konfiguration die Option "Nachricht vor der Veröffentlichung filtern" aktiviert ist und keine passende Subskription existiert.

Das Problem besteht darin, dass ein Aufruf der Azure-REST-API, die von Azure Java SDK anstelle von Informationen über keine übereinstimmende Subskription verwendet wird, nur 500 interne Serverfehler zurückgibt. Nur ein Aufruf von Azure .NET SDK gibt eine zurück Ausnahme mit einem nützlichen Kommentar.

0

Ich habe versucht, das Problem zu reproduzieren, scheiterte aber keine Informationen einen Fehler zu erhalten.

Gemäß der REST-API “Send Message” bedeutet der 500-Statuscode einen internen Fehler, der nicht vom Quellcode Ihres Clients verursacht wird.

Also ich denke, Sie können versuchen, den Code erneut auszuführen.

Können Sie weitere Informationen zur Analyse des Problems freigeben, wenn Sie immer noch den gleichen oder einen anderen Fehler erhalten?

Jede Sorge, bitte zögern Sie nicht, lassen Sie es mich wissen.

+0

Ich habe immer noch dieses Problem, ich laufe es ein paar Mal und immer den gleichen Fehler erhalten. Ich habe keinen direkten Zugriff auf Azurblau, ich habe nur SAS- und Topic-Details und muss eine Nachricht an dieses Thema senden. Ich frage mich, ob der Grund kann durch die API-Version, die der REST-Anfrage von azure SDK-Bibliothek hinzugefügt wird? Ich weiß nicht, ob es möglich ist, aber ich werde versuchen, eine Nachricht direkt von der REST API ohne azure sdk zum Thema zu bringen. – Rem

Verwandte Themen