Почему «302» не определено в Response.Status javax.ws.rs?

Я пытаюсь использовать библиотеку Java для проверки вселенной возможных ответов HTTP, а не писать свою собственную логику для проверки каждого кода ответа по отдельности.

Я нашел статический класс Response.Status в javax.ws.rs, который идеально подходит для этой цели. В его документации указано:

Часто используемые коды состояния, определяемые HTTP, полный список см. в документации HTTP/1.1.

Если вы посетите ссылку на документацию по HTTP/1.1, указанную согласно документации javax, вы ясно видите, что код состояния ответа 302 является действительным.

Однако следующий вызов возвращает null, что означает, что «соответствующий статус или ноль не соответствует статусу, который определен», что явно неверно:

 Response.Status.fromStatusCode(302);

И, конечно же, 302/FOUND не входит в перечисление, определенное в этом классе.

Кто-нибудь знает, почему это так? Является ли это оплошностью в коде javax.ws.rs или это было сделано намеренно?


person jtravaglini    schedule 22.08.2013    source источник
comment
Я предполагаю, что они не считали 302 обычно используемым.   -  person Hot Licks    schedule 22.08.2013
comment
@HotLicks, это сумасшедшие разговоры (они, а не вы). 302, вероятно, является одним из наиболее часто встречающихся кодов состояния — он используется для перенаправления.   -  person jtravaglini    schedule 22.08.2013


Ответы (2)


Значение перечисления Response.Status.FOUND (302) был добавлен в версии 2.0 (вместе с несколькими другими кодами ответа, отсутствующими в более ранних версиях).

person Ted Hopp    schedule 22.08.2013
comment
Рискуя выглядеть глупо, как мне использовать версию 2.0 javax.ws.rs? Я разрабатываю Eclipse с Oracle 7 JDK, и он все еще не проходит проверку, которую я делаю в OP. - person jtravaglini; 22.08.2013
comment
@jtravaglini - вы, вероятно, используете смесь J2SE 7 и J2EE 1.6. Вам необходимо отдельно загрузить J2EE 1.7 - person Ted Hopp; 22.08.2013

Есть довольно много кодов состояния, не охватываемых этим перечислением. Кажется очевидным, что они не считают 302 достаточно "общим", чтобы включать его по имени.

person Tom G    schedule 22.08.2013
comment
Учитывая, что для предоставления полного набора требуется всего несколько минут набора текста, это безумие, если он будет неполным. - person Raedwald; 23.08.2013
comment
Я сказал то же самое — непонятно, почему этого не было в 1.0. Особенно для 302. - person jtravaglini; 23.08.2013