2012-04-20 69 views
2

我試圖訪問Rest資源,我可以使用curl進行測試 如果id的長度小於11,則id長度應該是11個字符 例如「12345」 https://somesite.com:7677/something/id/ {ID} IAM獲得404 HTTP錯誤從我的Java代碼和捲曲,其是如預期Spring RestTemplate Beginner:客戶端發送的請求在語法上不正確()

如果ID的長度等於11,它是無效的ID 然後IAM獲得從捲曲相同性反應的和java

但是,如果我給有效的ID,這是阿爾雷利目前捲曲 我得到適當的JSON響應,但是當IAM試圖從restTemplate訪問REST資源它顯示如下所示

由客戶端發送的請求中的錯誤是語法不正確()。並有此請求

蔭無法弄清楚從最後2天,請提供您對此的想法,這樣它會EB真正幫助充滿了對我 我休息模板配置沒有錯誤日誌:

從該IAM試圖訪問
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> 
     <property name="messageConverters"> 
      <list> 
       <ref bean="jsonHttpMessageConverter" /> 
      </list> 
     </property> 
    </bean> 

代碼是

public List<Account> getAccounts(PersonNumber personNumber) { 
     logger.warn("Inside getAccounts of TransferAgreement client"); 

     String url = "https://somesite.com:7677/something/id/12345"; 
     logger.warn("URL acessing "+personNumber.toString()+" URL "+ url); 
     String a = restTemplate.getForObject(url, String.class); 
     System.out.println(a); 
     return null; 
    } 
+0

至少你應該發佈restTemplate條目的配置,但更好的辦法還是包括監聽請求的服務器端資源代碼。否則,沒有人能夠幫助你。 – 2012-04-20 14:13:45

+0

嗨,我已經更新了這個問題,我沒有訪問服務代碼 – Naresh 2012-04-20 14:22:56

回答

4

假設你使用的是Eclipse。

春季

啓用日誌記錄
  • 集日誌級別來調試或跟蹤的春天,看到Logging
  • 運行Java例子
  • 日誌輸出添加到您的文章

我認爲啓用日誌記錄就足夠了,我期望Spring中有一個異常。但另外,如果請求執行測試:

+0

謝謝你的工作有一個服務錯誤,這有助於我解決問題 – Naresh 2012-04-26 12:54:11

+1

服務中的錯誤是什麼?它爲什麼影響RestTemplate,而不是捲曲? – 2012-04-30 00:19:32

+0

@SpencerKormos在我的情況下,我的dto對象'Product'(restTemplate.getForObject(uriComponents.toUri(),Product.class);)沒有默認的構造函數(只有一個參數化的)導致這個錯誤。 – NickGreen 2016-10-11 13:07:36

0

你可以設置你的開發環境,您可以設置在Spring代碼調試斷點?如果是這樣,你可以在AbstractHttpMessageConverter.write()的最後一行設置一個斷點。假設您可以在調試器在斷點處暫停應用程序時評估Java表達式,則應該嘗試獲取outputMessage.toString()的結果,將其從IDE中複製出來並粘貼到文本編輯器中。這將向您展示RestTemplate發送的JSON,因此您可以驗證它確實與您通過curl發送的內容完全相同。

相關問題