NPE 从 Azure 服务总线队列接收消息时

NPE while receiving messages from Azure Service bus Queue

从队列接收消息时出现 NPE。 (仅当消息存在于队列中时)。我觉得反序列化消息存在问题。

java.lang.NullPointerException 在 com.sun.jersey.api.client.ClientResponse.getResponseDate(ClientResponse.java:738) 在 com.microsoft.windowsazure.services.servicebus.implementation.ServiceBusRestProxy.receiveMessage(ServiceBusRestProxy.java:288) 在 com.microsoft.windowsazure.services.servicebus.implementation.ServiceBusRestProxy.receiveQueueMessage(ServiceBusRestProxy.java:225) 在 com.microsoft.windowsazure.services.servicebus.implementation.ServiceBusExceptionProcessor.receiveQueueMessage(ServiceBusExceptionProcessor.java:142)

RECEIVE_AND_DELETE 选项删除消息并抛出 NPE。

所有其他操作(如创建队列、发送消息等)工作正常。有什么想法吗?

接收消息的代码

public void receiveMessage(String queueName) {
        try {
            ReceiveMessageOptions opts = ReceiveMessageOptions.DEFAULT;
            opts.setReceiveMode(ReceiveMode.PEEK_LOCK);

            while (true) {
                ReceiveQueueMessageResult resultQM
                        = service.receiveQueueMessage(queueName, opts);
                BrokeredMessage message = resultQM.getValue();
                if (message != null && message.getMessageId() != null) {
                    log.println("MessageID: " + message.getMessageId());
                    // Display the queue message.
                    log.print("From queue: ");
                    byte[] b = new byte[200];
                    String s = null;
                    int numRead = message.getBody().read(b);
                    while (-1 != numRead) {
                        s = new String(b);
                        s = s.trim();
                        System.out.print(s);
                        numRead = message.getBody().read(b);
                    }
                    log.println("");
                    log.println("Custom Property: "
                            + message.getProperty("MyProperty"));
                    // Remove message from queue.
                    log.println("Deleting this message.");
                    //service.deleteMessage(message);
                } else {
                    log.println("Finishing up - no more messages.");
                    break;
                    // Added to handle no more messages.
                    // Could instead wait for more messages to be added.
                }
            }
        } catch (Exception e) {
            log.print(e);
        }
    }

尽管它抛出了 NPE,但实际问题是缺少 jar 文件。这是 jar 文件列表

          <dependencies>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-svc-mgmt</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-svc-mgmt-compute</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-svc-mgmt-network</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-svc-mgmt-sql</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-svc-mgmt-storage</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-svc-mgmt-websites</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-svc-mgmt-media</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-servicebus</artifactId>
                        <version>0.9.7</version>
                </dependency>
                <dependency>
                        <groupId>com.microsoft.azure</groupId>
                        <artifactId>azure-serviceruntime</artifactId>
                        <version>0.9.7</version>
                </dependency>
        </dependencies>