3
我試圖爲使用JSON的Jersey RS構建Java Web服務的POST方法,但是當我提交一些示例JSON時,我收到了400錯誤的請求錯誤。400對POST服務的錯誤請求
@Path("/Register")
@Stateless
public class RegistrationController {
@POST
@Path("/Test")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String postHelloWorld(String message){
return "temp";
}
以上是爲後方法的代碼,並且當我試圖使用API服務諸如郵遞員提交POST請求
http://localhost:37846/Register/Test
使用郵差設置的報頭Content-Type as application \ json,以及一些示例JSON,如
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
我收到400錯誤的請求錯誤。
響應體:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GlassFish Server Open Source Edition 4.1.1 - Error report</title>
<style type="text/css">
<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}HR {color : #525D76;}-->
</style>
</head>
<body>
<h1>HTTP Status 400 - Bad Request</h1>
<hr/>
<p><b>type</b> Status report</p>
<p><b>message</b>Bad Request</p>
<p><b>description</b>The request sent by the client was syntactically incorrect.</p>
<hr/>
<h3>GlassFish Server Open Source Edition 4.1.1 </h3>
</body>
</html>
試圖打印使用System.out中失敗了,因爲沒有一個通用的是System.out.print( 「你好」)消息的消息,這使我相信該方法沒有被調用。
由於我沒有收到404錯誤,當我調整數據類型時,我將收到415不支持的媒體類型錯誤,這就排除了諸如不正確的映射之類的內容。
JSON不是格式錯誤,所以問題可能在於提交的請求或Web服務如何處理請求。
調試程序!打印輸入的消息。請求是否適用於不使用JSON的方法? – ppasler
400錯誤請求表示/測試端點期望的參數不同於您發送的參數。您是否使用JSON對象映射器(如Jackson)?如果是這樣,您需要在JSON中創建一個包含與菜單相同值的對象(Id,value,popup) –
400意味着您大部分時間都發送了錯誤的數據。你確定沒有錯誤描述的響應主體嗎?一個好的服務應該有它。 – cen