0

在过去 26 小时左右,调用 ServiceBusConstract.getQueue(path) (其中 path 是一个不存在的队列)会引发 ServiceException,其最终原因是绑定问题。

引起:javax.xml.bind.UnmarshalException:意外元素(uri:“ http://www.w3.org/2005/Atom ”,本地:“feed”)。预期的元素是 <{ http://schemas.microsoft.com/netservices/2010/10/servicebus/connect }QueueDescription>,<{ http://schemas.microsoft.com/netservices/2010/10/servicebus/connect } SubscriptionDescription>,<{ http://schemas.microsoft.com/netservices/2010/10/servicebus/connect }TopicDescription>,<{ http://www.w3.org/2005/Atom }entry> at com.sun .xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:647)

当同时使用 0.4.0 和 0.4.1 版本的 SDK 时,情况确实如此。

以前,此调用返回一个 GetQueueResult,其 .getValue() 方法返回 null。发现这一点,因为我的测试现在失败了。

生产服务是否已更新为不再与此调用兼容?ServiceBusContract.getQueue(nonExistentPath) 的预期行为是什么?

4

1 回答 1

0

预计会引发 ServiceException。我们实际上有一个单元测试来验证这种行为,请参阅以下文件中的 getNonExistQueueFail()。

https://github.com/WindowsAzure/azure-sdk-for-java/blob/master/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/serviceBus/ServiceBusConfigurationTest.java

于 2013-03-27T01:10:32.363 回答