2016-12-01 6 views
0

NPEからメッセージを受信して​​いるときに、NPE。 (メッセージがキューに存在する場合のみ)。メッセージのデシリアライズに問題があるような気がします。キューからメッセージを受信して​​いるときに、Azureサービスバスのキュー

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

RECEIVE_AND_DELETEオプションdメッセージを受信して​​NPEをスローします。

他のすべての操作は、キューの作成、メッセージの送信などをうまく処理します。これはどんな考えですか?それは実際の問題が欠落しているjarファイルとあった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); 
     } 
    } 

答えて

0

を受信する

コード。 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> 
関連する問題