2015-06-17 8 views
2

я установить следующие параметры конфигурации в struts.xml:/struts/webconsole.html все еще работает после установки Struts2 DEVMODE = ложь

<constant name="struts.devMode" value="false" /> 
<constant name="struts.configuration.xml.reload" value="true" /> 
<constant name="struts.i18n.reload" value="false" /> 

и в struts.properties: struts.devMode=false

Еще webconsole.html загрузки страницы. Как решить эту проблему?

+0

Вы решили свою проблему? –

+0

Из 2.3.31 или 2.5.5 struts2 веб-консоль видна только в том случае, если установлен devMode: issues.apache.org/jira/browse/WW-4601 –

ответ

5

Свойство devMode не имеет ничего общего с webconsole, это только делает эти вещи:

  • При включении Struts 2 будет перегружать свои пакеты ресурсов на каждом запросе (то есть вы можете изменить свои .properties файлы, сохранить их и увидеть изменения, отраженные в следующем запросе).
  • Он также перезагрузит ваши файлы конфигурации xml (struts.xml), ваши файлы проверки и т. Д. По каждому запросу. Это полезно для тестирования или тонкой настройки конфигурации без необходимости повторного развертывания приложения каждый раз.
  • И, в-третьих, возможно, эта настройка менее широко известна и, следовательно, источник большой путаницы: она повысит уровень ошибок отладки или обычно игнорируемых ошибок. Например: когда вы отправляете поле, которое невозможно установить при действии 'someUnknownField', оно обычно игнорируется. Однако, когда вы находитесь в режиме разработки, будет выбрано исключение, сообщающее вам, что было отправлено недопустимое поле. Это очень полезно для отладки или тестирования больших форм, но также может быть запутанным, если вы полагаетесь на параметры в своем запросе, которые не заданы в действии, но которые вы используете непосредственно на вашем уровне представления (предупреждение: неправильная практика, вы всегда должны проверять ввод из Интернета).

Я предполагаю, что вы едете из here, Мой совет: вы не должны даже развернуть этот компонент на производственной машине.

+0

Из 2.3.31 или 2.5.5 из struts2 веб-консоль видна только если установлен devMode: https://issues.apache.org/jira/browse/WW-4601 –

3

Просто напишите следующие строки внутри <struts> бирка.

<constant name="struts.action.excludePattern" value="/struts/webconsole.html" /> 
0

webconsole.html будет отображаться, даже если вы установили devMode параметры ложной, и даже если отладка перехватчик не в пакетах перехватчиков на всех!

Показаны стойки 2 webconsole.html, поскольку стойки загружают его как статический ресурс. Пожалуйста, обратите внимание на DefaultStaticContentLoader

Исследуя загруженный webconsole.html я считаю, что это не будет работать, даже если вы пытаетесь исправить некоторые изменения JavaScript, то DebuggingInterceptor не будет принимать какие-либо данные с этой страницы, если распорки не в devMod.

@ RajeevRanjan отлично работает. Просто добавьте:

<constant name="struts.action.excludePattern" value="/struts/webconsole.html"/> 

Если вы хотите, ничего не доступны, необходимо добавить CSS и JS, который используется перехватчик

<constant name="struts.action.excludePattern" value="/struts/webconsole.css"/> 
<constant name="struts.action.excludePattern" value="/struts/webconsole.js"/> 

Я думаю, что это должно/может быть исправлена ​​см https://issues.apache.org/jira/browse/WW-4601.

0

Когда мы устанавливаем dev-mode как false, клиент не может вводить anythings через webconsole.html. Кстати, эта страница webconsole.html кадры существуют, чтобы мы могли спрятали их по множеству безопасности-ограничение в web.xml, чтобы избежать доступа к этому файлу

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>OGNLconsole</web-resource-name> 
    <url-pattern>*/struts/webconsole.*</url-pattern> 
    </web-resource-collection> 
</security-constraint> 

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

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