Поскольку я получаю некоторые ошибки в разговорах, заканчивающихся внезапно, я создал в своем проекте несколько тестовых страниц, которые воспроизводят проблему. Навигация происходит между pageA.xhtml и pageB.xhtml. Пожалуйста, скажите мне, если я использую что-то неправильно.
Моя конфигурация:
Шов 2.2.0.GA
WebLogic 10.3.2 (11g)
Richfaces 3.3.2
JSF 1.2
Примечание: то же самое происходит при использовании аннотаций для начала / окончания разговора
=======
СТРАНИЦА А
@Name("pageaAction")
public class PageaAction {
@Out(required = false, scope = ScopeType.CONVERSATION)
Person person;
public String rule3() {
person = new Person();
person.setEmail("someone@gmail.com");
person.setName("markos");
return "rule3";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<page>
<navigation>
<rule if-outcome="rule3">
<begin-conversation />
<redirect view-id="/pages/seam_sandbox/pageb.xhtml" />
</rule>
</navigation>
</page>
...
<h:commandButton action="#{pageaAction.rule3()}" value="h:commandButton" /><br/>
...
=======
СТРАНИЦА B
@Name("pagebAction")
public class PagebAction {
@In(required = false, scope = ScopeType.CONVERSATION)
Person person;
public String redirectA() {
return "redirectA";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<page>
<navigation>
<rule if-outcome="redirectA">
<end-conversation before-redirect="true" />
<redirect view-id="/pages/seam_sandbox/pagea.xhtml" />
</rule>
</navigation>
</page>
...
<h:commandButton action="#{pagebAction.redirectA()}" value="h:commandButton" />
...
==========
ИСКЛЮЧЕНИЕ:
Это происходит после случайного числа перенаправлений.
javax.faces.FacesException:
{pagebAction.redirectA ()}: java.lang.IllegalStateException: Нет
контекст разговора активен
в com.sun.faces.application.ActionListenerImpl.processAction (ActionListenerImpl.java:118)
на javax.faces.component.UICommand.broadcast (UICommand.java:387)
в org.ajax4jsf.component.AjaxViewRoot.processEvents (AjaxViewRoot.java:324)
в org.ajax4jsf.component.AjaxViewRoot.broadcastEvents (AjaxViewRoot.java:299)
в org.ajax4jsf.component.AjaxViewRoot.processPhase (AjaxViewRoot.java:256)
в org.ajax4jsf.component.AjaxViewRoot.processApplication (AjaxViewRoot.java:469)
в com.sun.faces.lifecycle.InvokeApplicationPhase.execute (InvokeApplicationPhase.java:82)
на com.sun.faces.lifecycle.Phase.doPhase (Phase.java:100)
на com.sun.faces.lifecycle.LifecycleImpl.execute (LifecycleImpl.java:118)
в javax.faces.webapp.FacesServlet.service (FacesServlet.java:265)
at weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run (StubSecurityHelper.java:227)
на weblogic.servlet.internal.StubSecurityHelper.invokeServlet (StubSecurityHelper.java:125)
на weblogic.servlet.internal.ServletStubImpl.execute (ServletStubImpl.java:292)
на weblogic.servlet.internal.TailFilter.doFilter (TailFilter.java:26)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:56)
в org.ajax4jsf.webapp.BaseFilter.doFilter (BaseFilter.java:530)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:56)
в org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:83)
в org.jboss.seam.web.IdentityFilter.doFilter (IdentityFilter.java:40)
в org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69)
в org.jboss.seam.web.MultipartFilter.doFilter (MultipartFilter.java:90)
в org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69)
в org.jboss.seam.web.ExceptionFilter.doFilter (ExceptionFilter.java:64)
в org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69)
в org.jboss.seam.web.RedirectFilter.doFilter (RedirectFilter.java:45)
в org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69)
в org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter (BaseXMLFilter.java:178)
в org.ajax4jsf.webapp.BaseFilter.handleRequest (BaseFilter.java:290)
в org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest (BaseFilter.java:388)
в org.ajax4jsf.webapp.BaseFilter.doFilter (BaseFilter.java:515)
в org.jboss.seam.web.Ajax4jsfFilter.doFilter (Ajax4jsfFilter.java:56)
в org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69)
в org.jboss.seam.web.LoggingFilter.doFilter (LoggingFilter.java:60)
в org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69)
в org.jboss.seam.servlet.SeamFilter.doFilter (SeamFilter.java:158)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:56)на weblogic.servlet.internal.RequestEventsFilter.doFilter (RequestEventsFilter.java:27)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:56)
на weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run (WebAppServletContext.java:3592)
в weblogic.security.acl.internal.AuthenticatedSubject.doAs (AuthenticatedSubject.java:321)
на weblogic.security.service.SecurityManager.runAs (SecurityManager.java:121)
на weblogic.servlet.internal.WebAppServletContext.securedExecute (WebAppServletContext.java:2202)
на weblogic.servlet.internal.WebAppServletContext.execute (WebAppServletContext.java:2108)
на weblogic.servlet.internal.ServletRequestImpl.run (ServletRequestImpl.java:1432)
на weblogic.work.ExecuteThread.execute (ExecuteThread.java:201)
на weblogic.work.ExecuteThread.run (ExecuteThread.java:173)
Вызванный:
javax.faces.el.EvaluationException:
java.lang.IllegalStateException: нет
контекст разговора активен
в javax.faces.component.MethodBindingMethodExpressionAdapter.invoke (MethodBindingMethodExpressionAdapter.java:102)
в com.sun.faces.application.ActionListenerImpl.processAction (ActionListenerImpl.java:102)
... еще 45 Причина: java.lang.IllegalStateException: Нет
контекст разговора активен
в org.jboss.seam.ScopeType.getContext (ScopeType.java:133)
в org.jboss.seam.Component.getValueToInject (Component.java:2325)
в org.jboss.seam.Component.injectAttributes (Component.java:1736)
в org.jboss.seam.Component.inject (Component.java:1554)
в org.jboss.seam.core.BijectionInterceptor.aroundInvoke (BijectionInterceptor.java:61)
в org.jboss.seam.intercept.SeamInvocationContext.proceed (SeamInvocationContext.java:68)
в org.jboss.seam.core.ConversationInterceptor.aroundInvoke (ConversationInterceptor.java:65)
в org.jboss.seam.intercept.SeamInvocationContext.proceed (SeamInvocationContext.java:68)
в org.jboss.seam.core.MethodContextInterceptor.aroundInvoke (MethodContextInterceptor.java:44)
в org.jboss.seam.intercept.SeamInvocationContext.proceed (SeamInvocationContext.java:68)
в org.jboss.seam.intercept.RootInterceptor.invoke (RootInterceptor.java:107)
в org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation (JavaBeanInterceptor.java:185)
в org.jboss.seam.intercept.JavaBeanInterceptor.invoke (JavaBeanInterceptor.java:103)
на eu.emea.pim.prs.web.seamsandbox.PagebAction _ $$ _ javassist_seam_8.redirectA (PagebAction _ $$ _ javassist_seam_8.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native
Метод)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
в java.lang.reflect.Method.invoke (Method.java:597)
в org.jboss.el.util.ReflectionUtil.invokeMethod (ReflectionUtil.java:335)
в org.jboss.el.util.ReflectionUtil.invokeMethod (ReflectionUtil.java:280)
в org.jboss.el.parser.AstMethodSuffix.getValue (AstMethodSuffix.java:59)
в org.jboss.el.parser.AstMethodSuffix.invoke (AstMethodSuffix.java:65)
в org.jboss.el.parser.AstValue.invoke (AstValue.java:96)
в org.jboss.el.MethodExpressionImpl.invoke (MethodExpressionImpl.java:276)
в com.sun.facelets.el.TagMethodExpression.invoke (TagMethodExpression.java:68)
в javax.faces.component.MethodBindingMethodExpressionAdapter.invoke (MethodBindingMethodExpressionAdapter.java:88)
... еще 46