2013-11-18 3 views
1

Я настроил struts.xml файл следующим образом:Невозможно определить, является ли перехватчик работает или нет в Struts2

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
    <constant name="struts.devMode" value="true" /> 
    <package name="helloworld" extends="struts-default"> 

     <action name="hello" 
      class="com.struts2examples.HelloWorldAction" 
      method="execute"> 
      <result name="success">/HelloWorld.jsp</result> 
      <result name="error">/AccessDenied.jsp</result> 
      <interceptor-ref name="params"/> 
      <interceptor-ref name="timer" /> 
     </action> 
    </package> 
</struts> 

Он должен регистрировать время действия исполнения hello. Когда я звоню hello действия на сервере, Бревно получить сгенерированные в TOMCAT журналов как:

0:0:0:0:0:0:0:1 - - [18/Nov/2013:17:24:38 +0530] "GET /StrutsHelloWorld/Login.jsp HTTP/1.1" 404 1033 
0:0:0:0:0:0:0:1 - - [18/Nov/2013:17:29:30 +0530] "POST /Struts2HelloWorld/hello HTTP/1.1" 200 129 
0:0:0:0:0:0:0:1 - - [18/Nov/2013:17:29:41 +0530] "POST /Struts2HelloWorld/hello HTTP/1.1" 200 105 
0:0:0:0:0:0:0:1 - - [18/Nov/2013:17:31:04 +0530] "POST /Struts2HelloWorld/hello HTTP/1.1" 200 105 

Нигде бревна перехватчиков не показаны. Я обращаюсь к файлу localhost_access_log.2013-11-18.txt в журналах tomcat. Имею ли я доступ к неправильному файлу? Если это то, где будут записываться журналы?

ответ

1

Вы не указали, какую библиотеку вы используете (например, Log4j), и как она настроена, но вы должны заглянуть в свой файл журнала, а не в tomcat.

От the documentation:

Этот перехватчик регистрирует количество времени в миллисекундах. Для того чтобы этот перехватчик работал правильно, кадр регистрации должен быть установлен , по крайней мере, на уровень INFO. Этот перехватчик полагается на Commons Logging API, чтобы сообщить свое значение времени выполнения.

Параметры
  • logLevel (по желанию) - какой уровень журнала мы должны использовать (трассировка, отладка, информация, предупредить, ошибка со смертельным исходом)? - УСПЕШНОГО является INFO

  • logCategory (по желанию) - Если при условии, мы будем использовать эту категорию (например, com.mycompany.app.). По умолчанию предназначен для использования com.opensymphony.xwork2.interceptor.TimerInterceptor.

Параметры выше позволяет журнал все время выполнения действия в собственной логфайл.

Таким образом, вы используете только ДВЕ-перехватчики; было бы лучше добавить таймер-перехватчик в defaultStack или, по крайней мере, в basicStack (или в свой собственный стек). Собираю после стека будет регистрировать только время выполнения действия, в то время, прежде чем стек будет регистрировать время выполнения перехватчиков слишком:

Войдите только время выполнения действия по:

<action name="hello" class="com.struts2examples.HelloWorldAction"> 
    <interceptor-ref name="defaultStack"/> 
    <interceptor-ref name="timer" /> 
    <result>/HelloWorld.jsp</result> 
    <result name="error">/AccessDenied.jsp</result> 
</action> 

журнал действия и время исполнения перехватчика:

<action name="hello" class="com.struts2examples.HelloWorldAction"> 
    <interceptor-ref name="timer" /> 
    <interceptor-ref name="defaultStack"/> 
    <result>/HelloWorld.jsp</result> 
    <result name="error">/AccessDenied.jsp</result> 
</action> 

Обратите внимание, что method="execute" или result name="success" не нужны, потому что они по умолчанию.

+0

Я следую учебному пособию по адресу http://www.tutorialspoint.com/struts_2/struts_interceptors.htm. Я установил файл logging.properties для вышеуказанного кода как: org.apache.catalina.core.ContainerBase. [Catalina] .level = INFO org.apache.catalina.core.ContainerBase. [Catalina] .handlers = java.util.logging.ConsoleHandler Я ничего не делал. Можете ли вы мне помочь? – anon

+0

Ваши журналы перепутаны btw (все ведущие 0 и 1 и т. Д.). Просто переключитесь с регистратора Apache на log4j для успешного проживания: http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j –

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