JAX-RS - Как вернуть код состояния JSON и HTTP вместе?

Я пишу веб-приложение REST (NetBeans 6.9, JAX-RS, TopLink Essentials) и пытаюсь вернуть JSON и Код состояния HTTP. У меня есть готовый и работающий код, который возвращает JSON при вызове метода HTTP GET из клиента. По сути:

@Path("get/id")
@GET
@Produces("application/json")
public M_機械 getMachineToUpdate(@PathParam("id") String id) {

    // some code to return JSON ...

    return myJson;
}

Но я также хочу вернуть код состояния HTTP (500, 200, 204 и т. Д.) Вместе с данными JSON.

Я попытался использовать HttpServletResponse :

response.sendError("error message", 500);

Но это заставило браузер подумать, что это "настоящий" 500, поэтому выходная веб-страница была обычной страницей с ошибкой HTTP 500.

Я хочу вернуть код состояния HTTP, чтобы мой клиентский JavaScript мог обрабатывать некоторую логику в зависимости от этого (например, чтобы отобразить код ошибки и сообщение на странице HTML). Возможно ли это, или не следует использовать коды состояния HTTP для таких вещей?

237
задан Jens Piegsa 23 April 2015 в 01:55
поделиться