2013-03-05 2 views
1

Возможно ли зарегистрировать точный URL-адрес, доступ к которому и параметры переданы? У меня есть серия ошибок, регистрируемых с нескольких сайтов, которые используют одно и то же имя файла jsp. Я не могу воспроизвести ошибки сервера в моем окне разработки, поэтому я хотел бы записать столько, сколько я могу, чтобы сузить проблему.JSP - Регистрация ошибок URL и параметров

Ошибки я получаю:

01-Mar-2013 21:37:58 org.apache.catalina.core.ApplicationDispatcher invoke 
    SEVERE: Servlet.service() for servlet jsp threw exception 
    java.lang.NullPointerException 
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991) 
    at java.lang.Double.valueOf(Double.java:475) 
    at org.apache.jsp.product_jsp._jspService(product_jsp.java:212) 

я могу устранить эту ошибку, если я могу понять, что пытается получить доступ, если это имеет смысл.

Любая помощь будет высоко ценится :-)

+0

Использовать фильтр регистрации? –

+0

Не могли бы вы привести пример? Я не хочу создавать огромные файлы журналов, просто сообщите об этом домену и параметрам полного URL, когда сообщается об ошибке. – iggyweb

+0

Я имею в виду, что ошибка очевидна; не зная, как используется JSP, трудно дать осмысленный совет о том, как лучше всего захватить и зарегистрировать ошибку. Если он полностью находится в JSP (ewewew), то поймайте исключение в JSP и зарегистрируйте URL-адрес и параметры запроса. –

ответ

0

Вы можете определить страницу обработчика ошибок в web.xml, как это:

<error-page> 
    <exception-type>java.lang.Exception</exception-type> 
    <location>/...</location> 
</error-page> 

и в этой страницы/журнала сервлета исходной информации запроса. Она должна быть доступна, так как в соответствии со спецификацией сервлетов

Если местоположение обработчика ошибок сервлет или страницу JSP:

■ Оригинальные развернутые запроса и ответа объекты, созданные с помощью контейнера прошли на страницу сервлета или JSP.

■ Путь и атрибуты запроса заданы так, как если бы был выполнен запрос RequestDispatcher.forward к ресурсу ошибки .

Таким образом, вы можете использовать getRequestURL() или другой метод или какой-либо из запроса атрибутов javax.servlet.error.status_code, javax.servlet.error.exception_type, javax.servlet.error.message, javax.servlet.error.exception, javax.servlet.error.request_uri, javax.servlet.error.servlet_name.

, чтобы получить всю необходимую информацию для регистрации.

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