Я разрабатываю приложение javaee с JSF / Primefaces.
Мне нужно было защитить свое приложение.Я сделал это с:
<security-constraint>
<web-resource-collection>
<web-resource-name>APP</web-resource-name>
<url-pattern>*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>MYROLE desc</description>
<role-name>MYROLEAccess</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
Однако, когда я определил пользовательскую страницу ошибки для ошибки 401
<error-page>
<error-code>401</error-code>
<location>/error/401.xhtml</location>
</error-page>
, я получил:
Problem occurred while serving the error page.
java.lang.IllegalStateException: Must call associate() before calling activate()
at org.jboss.weld.context.AbstractConversationContext.activate(AbstractConversationContext.java:196)
at org.jboss.weld.jsf.WeldPhaseListener.activateConversations(WeldPhaseListener.java:108)
at org.jboss.weld.jsf.WeldPhaseListener.beforePhase(WeldPhaseListener.java:85)
at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
Truncated. see log file for complete stacktrace
`
и браузер выдает HTTP ERROR 500.
Я использую weblogic 12.1.3 и java 7.
Я пробовал с weblogic 12.2.x и java 8, и это работает.Что здесь не так?Вы можете мне помочь?Если я не отображаю ошибку, она запрашивает учетные данные, в противном случае она сразу переходит в Error-500.