Отключение предупреждений OGNL в Struts2

1

Я пытаюсь отключить следующее предупреждающее сообщение

OgnlValueStac W com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn Error setting expression '*checkboxidentifyer*' with value '[Ljava.lang.String;@518b518b'

Я попытался поместить следующее в мой файл log4j.xml

<logger name="log4j.logger.org.apache.struts2" >
    <level value="ERROR" />
    <appender-ref ref="console" />
</logger>
<logger name="log4j.logger.com.opensymphony" >
  <level value="ERROR" />
  <appender-ref ref="console" />
</logger>
<logger name="ognl.OgnlException" >
  <level value="ERROR" />
     <appender-ref ref="console" />
</logger>
<logger name="com.opensymphony.xwork2.util.logging.commons.CommonsLogger" >
  <level value="ERROR" />
  <appender-ref ref="console" />
</logger>
<logger name="ognl.OgnlRuntime" >
  <level value="ERROR" />
  <appender-ref ref="console" />
</logger>

Я также попытался добавить

<constant name="struts.devMode" value="false" />

в мой файл struts.xml. Кроме того, я попытался добавить следующее к interceptor-stack секции struts.xml файла

<interceptor-ref name="defaultStack">
    <param name="excludeParams">.*?checkbox.*</param>
</interceptor-ref>

Мои вопросы: 1) Я сделал пропущенную конфигурацию? 2) Как отключить предупреждения.

Теги:
struts2
warnings
ognl

2 ответа

1
Лучший ответ

excludeParams является свойством перехватчика params и на него должны ссылаться так:

<interceptor-ref name="defaultStack">
    <param name="params.excludeParams">.*?checkbox.*</param>
</interceptor-ref>

Обратите внимание: если вы используете тег interceptor-ref в действии, он переопределяет стек перехватчика по умолчанию и применим только к этой конфигурации действий. Для общего использования рассмотрите создание настраиваемого стека перехватчиков и сделайте его по умолчанию для любой конфигурации действий.

Вы можете установить уровень ведения журнала для перехватчиков и OGNL. Использование log4j.properties

log4j.logger.com.opensymphony.xwork2.interceptor=ERROR
log4j.logger.com.opensymphony.xwork2.ognl=ERROR
  • 0
    Я попытался изменить имя параметра и также попытался добавить новые log4j.properties (у нас не было ни одного из них, так как вместо этого мы использовали конфигурацию xml), и все же я получаю предупреждение. И да, мы перевалили за стек по умолчанию.
  • 0
    Позвольте мне также отметить, что я попытался добавить эти идентификаторы и в файл log4j.xml, добавив <logger name = "log4j.logger.com.opensymphony.xwork2.interceptor"> и <logger name = "log4j.logger.com.opensymphony .xwork2.ognl "> к нему, используя то же тело для тега регистратора, которое я использовал в вопросе выше.
Показать ещё 4 комментария
0

Я финнали перепутал ошибку, в то время как у меня было (как видно в вопросе выше парама в defaultcept-перехватчике ref, когда я переместил параметр в параметры перехватчика-ref name, он удалил ошибку

<interceptor-stack name="new_default_stack">
  <interceptor-ref name="params">
  <param name="paramNameMaxLength">250</param>
  <param name="excludeParams">.*?checkbox.*</param>
  </interceptor-ref>
  <interceptor-ref name="timeActions"/>
  <interceptor-ref name="defaultStack">

  </interceptor-ref>
  <interceptor-ref name="userProfile"/>
  <interceptor-ref name="valueStackManipulator"/>
  <interceptor-ref name="actionHistoryRecorder"/>
  <interceptor-ref name="cachingHeadersInterceptor"/>
</interceptor-stack>

это было место исключения исключений, которые необходимо было изменить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню