我正在使用JSF / Primefaces开发Javaee应用程序。
我需要保护我的申请。我这样做的是:
<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。