2012-02-24 2 views
1

Раньше, когда я использовал Джерси на Гризли, если бы я вызвал метод HTTP, который не был определен в аннотациях Джерси, он вернул бы ответ 405 «Не разрешенный метод», и это было хорошо ,405 Метод не разрешен в Джерси возвращает 405 страниц Tomcat

Теперь, когда я управляю Джерси на Tomcat, сервер возвращает конкретную страницу 405 html Tomcat. Как я могу вернуться к простому отправке ответа с пустым телом?

ответ

0

Вы можете настроить пользовательскую страницу в web.xml вашей WebAPP в:

<error-page> 
    <error-code>405</error-code> 
    <location>/empty.txt</location> 
</error-page> 

Расположение может ссылаться на пустой текстовый файл или JSP/Servlet/все, что соответствует вашим потребностям.

1

Как взяты из этой нити: http://jersey.576304.n2.nabble.com/how-to-catch-405-errors-td4937392.html

Создать класс сопоставителя исключения вроде так:

@Provider 
public class MyMapper implements 
ExceptionMapper<WebApplicationException> { 
    public Response toResponse(WebApplicationException e) { 
    Response r = e.getResponse(); 
    if (r.getStatus() == 405) { 
     return Response.fromResponse(r).entity(...).build(); 
    } 
    return r; 
    } 
} 

Это позволило мне захватить 405 запрос и возвращает более полезный ресурс ошибок, которые могут быть разобраны при помощи Приложения.

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