PrettyFaces не работает в Wildfly 8.1.0, но работает в 8.0.0
PrettyFaces убивает сеанс при каждом запросе, который включает перенаправление при развертывании приложения в Wildfly 8.1.0.Final. Это же приложение развертывается и работает должным образом на Wildfly 8.0.0.Final.
На 8.1.0 PrettyFaces, кажется, препятствует тому, чтобы стек сервлета получил идентификатор сеанса.
Журнал не показывает исключений в любом случае. URL перезаписывается, но информация о сеансе (включая информацию для входа в систему) исчезла. Это мой pretty-config.xml
<pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces
http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd">
<url-mapping id="user-settings">
<pattern value="/protected/user/settings/"/>
<view-id value="/protected/usersettings.xhtml"/>
</url-mapping>
<url-mapping id="thread-edit">
<pattern value="/protected/threads/edit/#{stitchId}/" />
<view-id value="/protected/threads/stitch.xhtml" />
<action>#{stitchEditBean.editStitchFromId(stitchId)}</action>
</url-mapping>
<url-mapping id="threads-index">
<pattern value="/protected/threads/" />
<view-id value="/protected/threads/index.xhtml" />
</url-mapping>
</pretty-config>
Ошибка возникает как для PrettyFaces 2.0.12.Final, так и для 3.0.0.Alpha2
2 ответа
Как отметил Кен, основная проблема связана с https://issues.jboss.org/browse/WFLY-3448
Добавление явного пути к файлам cookie в web.xml обходит проблему и безопасно.
<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<!--
A bug in wildfly 8.1.0.final requires this path to be set explicitly or occasionally the default is
incorrect and the system will generate one cookie per directory incorrectly.
-->
<path>/</path>
</cookie-config>
</session-config>
Возможно, вам придется вручную удалить поврежденные куки в КАЖДОМ каталоге вашего приложения или сбросить все ваши сеансовые куки. В противном случае старые файлы cookie сеанса могут зависать, вызывая проблему.
Это ошибка в WildFly 8.1.0, исправленная здесь: https://issues.jboss.org/browse/WFLY-3448
После того, как вы используете версию, в которой исправлена эта ошибка, вам потребуется использовать Rewrite 3.0.0.Alpha3 или новее, чтобы решить дополнительные проблемы при обработке пути к корневому контексту.