Это сводит меня с ума. Я работаю над конечной точкой REST в JAX-RS (Glassfish/Jersey). У меня есть метод, который должен получать String, хранить его и возвращать. Вся конечная точка должна потреблять и производить JSON. Но каждый раз, когда я отправляю String методу, он передается мне в скрытой форме. Например. если я отправляю:JAX-RS (Jersey): Строка из тела запроса JSON еще спасся
fetch("http://localhost:8080/myapp/rest/myresource", {
method: "post",
credentials: 'same-origin',
body: JSON.stringify("test\ntest"),
headers: {
"Content-Type": "application/json"
}
})
и ресурс:
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class MyResource {
@POST
public String set(@NotNull String value){
// store it
return storedValue;
}
}
то, что хранится, и вернуться к клиенту, является:
"test\ntest"
Если, однако, я обернуть Строка в объекте:
fetch("http://localhost:8080/myapp/rest/myresource", {
method: "post",
credentials: 'same-origin',
body: JSON.stringify({value: "test\ntest"}),
headers: {
"Content-Type": "application/json"
}
})
с ресурсом
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class MyResource {
@XmlRootElement
public static class Wrapper {
public String value;
}
@POST
public String set(@NotNull Wrapper wrapper) {
String value = wrapper.value;
// store it
return storedValue;
}
}
то значение, которое хранится и возвращается к клиенту
test
test
ли я что-то отсутствует?
Glassfish 4.1.1
- jersey 2.10.4-0
- json 1.0-0.1