2013-08-22 1 views
4

Я пытаюсь использовать библиотеку Java для проверки юниверса возможных ответов HTTP, вместо того, чтобы писать свою собственную логику для проверки каждого кода ответа отдельно.Почему «302» не определен в Response.Status из javax.ws.rs?

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

Обычно используемые коды состояния, определенные HTTP, см. Документацию по HTTP/1.1 для получения полного списка.

Если вы посещаете link to the HTTP/1.1 docs, на который ссылается документации javax, вы явно видите 302 ответа код статуса, как являющийся действительным.

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

Response.Status.fromStatusCode(302); 

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

Есть ли у кого-нибудь идеи, почему это так? Это недосмотр в коде javax.ws.rs - или это было сделано намеренно?

+2

Я полагаю, что они не считали 302 «широко используемым». –

+0

@HotLicks это безумный разговор (им, а не вы). 302, вероятно, является одним из наиболее распространенных кодов статуса - он используется для перенаправления. – jtravaglini

ответ

4

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

+0

Рискуя выглядеть глупо, как использовать версию 2.0 javax.ws.rs? Я развиваюсь в Eclipse с помощью Oracle 7 JDK, и он все еще терпит неудачу в проверке, которую я делаю в OP. – jtravaglini

+2

@jtravaglini - Возможно, вы используете сочетание J2SE 7 и J2EE 1.6. Вам нужно отдельно [загрузить J2EE 1.7] (http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-7-downloads-1956236.html) –

1

Существует много статусных кодов, которые не охватываются этим перечислением. Похоже, что они не считают 302 «общим» достаточно для включения по имени.

+1

Учитывая простые минуты ввода, необходимые для обеспечения полного набора, это безумие, поскольку оно является неполным. – Raedwald

+0

Я сказал то же самое - загадочно, почему этого не было в 1.0. Специально для 302. – jtravaglini

 Смежные вопросы

  • Нет связанных вопросов^_^