Я пытаюсь создать метод POST для веб-службы Java с использованием Jersey RS, который потребляет JSON, однако я получаю ошибку 400 ошибок при отправке некоторого образца JSON.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, такие как Почтальон, чтобы отправить запрос на запись в
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 Unsupported Media type, это исключает что-то вроде неправильного сопоставления.
JSON не искажен, поэтому проблема, вероятно, связана либо с предоставленным запросом, либо с тем, как веб-служба обрабатывает запрос.
отладки программы! Распечатайте входящее 'сообщение'. Выполняет ли запрос методы без использования JSON? – ppasler
400 Bad Request означает, что конечная точка/test ожидает разные параметры, чем вы отправляете. Используете ли вы JSON-объект, например, Jackson? Если это так, вам нужно создать объект, содержащий те же значения, что и в меню JSON (Id, value, popup) –
400 означает, что вы часто отправляете плохие данные. Вы уверены, что нет тела ответа с описанием ошибки? Хорошее обслуживание должно иметь это. – cen