代码之家  ›  专栏  ›  技术社区  ›  Markos Fragkakis

使用重定向时seam会话突然结束

  •  0
  • Markos Fragkakis  · 技术社区  · 15 年前

    因为我在突然结束的对话中发现了一些错误,所以我在项目中创建了一些测试页面来重现这个问题。导航在pagea.xhtml和pageb.xhtml之间进行。如果我用错了什么东西,请告诉我。

    我的配置: 接缝2.2.0.ga WebLogic 10.3.2(11克) RichFaces 3.3.2版 JSF 1.2

    注意:使用注释开始/结束对话时也会发生同样的情况

    不受欢迎的=

    页A

    @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/>
    ...
    

    不受欢迎的=

    乙页

    @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.Fask.Apvest.ActListListIMP.PosialActudio(ActhListNeLIP.java:118) 在Javax.FACK.组件. UICOMMand .广播(UICOMMand . Java:387) 在Org.AjAx4jsf.Corp.AjxVIEW Roo.PraseSevices(AjAxVortRoo.java:324) 在Org.AjAx4jsf.Corp.AjAcxVortRoo.BuldCASTEvvices(Ajax视图根目录下:Java:299) 在Org.AjAx4jsf.Corp.AjxVIEWRoo.PraseSpHASE(Ajax视图根目录下:Java:256) 在Org.AjAx4jsf.Corp.AjAcxVortRoo.PurrestApvices(Ajax视图根目录下:Java:469) 在COM.Sun.FACK.生命周期.CujKeAppultPosial.Exctudio(调用KealPosialPosial.java:82) 在COM.Sun.FACK.生命周期.阶段. DopaFe(阶段. Java:100) 在COM.Sun.FACK.生命周期.LealEclipse Currimul.Exctudio(LealEclipse Currim.java:118) 在Javax.Fase.WebApp.FACESServServ.Service(FrasServServ.java:265) 在WebLogic .servlet .No.StutsCurristHelp$Servlet Service eActual.Run(StutsSurvivelHelp.java:227) 在WebLogic .servlet .No.StutsSturielHelp.ViNoCeServlet(StutsSturielHelp.java:125) 在WebLogic Servlet内部.Servlet StudiimL.Excel(Servlet Studiim.java:292) 在WebLogic .servlet .No.TalfFut.DoFulter(TurfField.java:26) 在WebLogic Servlet内部.FieltChanIMP.DoFulter(FieldChanIMP.java:56) 在Org.AjAX4JSF.WebApp.BaseFortual.DoFulter(BaseFortu.java:530) 在WebLogic Servlet内部.FieltChanIMP.DoFulter(FieldChanIMP.java:56) 在Org.jBase.Sea.Servlet .CasField$FiTrChanIMP.DoFielter(CaseFortu.java:83) 在Org.jBase.Sea.Web.IddiTyfFortual.DoFulter(IddiTysFor.java:40) 在Org.jBase.Sea.Servlet .CasField$FiTrChanIMP.DoFielter(CaseFortu.java:69) 在Org.jBase.Sea.Web.MultPultField.DoFulter(MultPortFortu.java:90) 在Org.jBase.Sea.Servlet .CasField$FiTrChanIMP.DoFielter(CaseFortu.java:69) 在Org.jBase.Sea.Web.ExabyFortudio.DoFulter(ExabutoFortu.java:64) 在Org.jBase.Sea.Servlet .CasField$FiTrChanIMP.DoFielter(CaseFortu.java:69) 在Org.jBase.Sea.Web.RealdTrime.DoFulter(RealTimFortu.java:45) 在Org.jBase.Sea.Servlet .CasField$FiTrChanIMP.DoFielter(CaseFortu.java:69) 在Org.AjAx4JSF.WebApp.BaseXMLFortual.doxMLForter(BaseXMLFortu.java:178) 在Org.AjAX4JSF.WebApp.BaseFortual.HuffLeReStest.BaseFortu.java:290) 在Org.AjAX4JSF.WebApp.BaseFortual.PrExsSuppAddiSand(388) 在Org.AjAX4JSF.WebApp.BaseFortual.DoFulter(BaseFortu.java:515) 在Web环境下,您可以看到一个Web站点。 在Org.jBase.Sea.Servlet .CasField$FiTrChanIMP.DoFielter(CaseFortu.java:69) 在Org.jBase.Sea.Web.LoggGoField.DoFulter(LoggField.java:60) 在Org.jBase.Sea.Servlet .CasField$FiTrChanIMP.DoFielter(CaseFortu.java:69) 在Org.jBase.Sea.servlet .CuxField.DoFulter(SeCufter .java:158) 在WebLogic Servlet内部.FieltChanIMP.DoFulter(FieldChanIMP.java:56) 在WebLogic .servlet .NET.RealEvestsField.FoFulter(RevestVistsField.java:27) 在WebLogic Servlet内部.FieltChanIMP.DoFulter(FieldChanIMP.java:56) 在WebLogic .servlet .NET.WebAppServices上下文$Servlet调用OctualActual.Run(WebAppServices上下文.java:3592) 在WebLogic .Security .ACL.NET.AudioCaldActudi.DOAS(身份验证主题:Java:321) 在WebLogic .Security .Service上。Security Mealths.Runas(Security Mealth.java:121) 在WebLogic .servlet .NET.WebAppServices上下文.SurueDeCuutt(WebAppServices上下文. Java:2202) 在WebLogic .servlet .NET.WebAppServices上下文. Excel(WebAppServices上下文. Java:2108) 在WebLogic Servlet内部.Servlet ReqRestMIP.Run(Servlet ReqStudip.java:1432) 在WebLogic .Work.ExcExtTrime. Excel(Excel线程.java:201) 在WebLogic .Work.ExcExtTyth.Run(ExcExtTyth.java:173) 引起: javax.faces.el.evaluation异常: java.lang.IllegalStateException:否 会话上下文活动 在JavaX.FACK. 在COM.Sun.Fask.Apvest.ActListListIMP.PosialActudio(ActhListNeLIP.java:102) …45其他原因:java.lang.IllegalStateException:否 会话上下文活动 在Org.jBase.SeC.StopeType .GETForm(StopeType .java:133) 在Org.jBase.Sea.Cort.GueValueTin(组件.java:2325) 在Org.jBase.Sea.Cult.CujEntices属性(组件.java:1736) 在Org.jBase.Sea.Corg.In注入(组件.java:1554) 在Org.jBase.Sea.Cork.BijDeTraceToor.ActudioBoeKE(BijTeNeTracor.java:61) 在Org.jBase.Sea.ScPcP.SeMeNoCaseCort.Eng.(SeMeNoCaseCort.java:68) 在Org.jBase.SeC.Cort.TraceTraceTracor.ActudioBooKE(TraceTraceToror.java:65) 在Org.jBase.Sea.ScPcP.SeMeNoCaseCort.Eng.(SeMeNoCaseCort.java:68) 在Org.jBase.Sea.Corn.MultExcTraceToor.ActudieCuoKE(MultExtExtReopor.java:44) 在Org.jBase.Sea.ScPcP.SeMeNoCaseCort.Eng.(SeMeNoCaseCort.java:68) 在Org.jBase.Sea.ScPcto.RooTracort.Nojk(RooTracor.java:107) 在Org.jBase.Sea.CopeP.JavaBeA拦截击机.截击调用(JavaBeA.Beortor.java:185) 在Org.jBase.Sea.CopeP.javabeAccTort.JooKE(JavaBeA.Beortor.java:103) 在欧盟,EMEA,PIM.PRS.Web.CasSoxBox .pAgbActuoNo.$$JavaAsdioSmith.8. ReRealTa(PaqbActuoNo$$YavaAsviSeriMase8. Java) 在sun.reflect.nativeMethodAccessorImpl.invoke0(本机 方法) 在Sun.Real.nTyvEndoDealOrthIMP.LoCKE(NATEVEMEDAccess ORIL .java:39) 在Sun中。 在Java.Lang.Exrime.Frut.CuoKE(方法.java:597) 在Org.jBo.E.U.L.CurrutuUL.EnvoEnMeod(ErrutuUTL.java:335) 在Org.jBo.E.U.L.CurrutuUL.EnvoEnMeod(ErrutuUTL.java:280) 在Org.jBase.el.Pors.AsMasdPythix.GETValk(ASTMeDestix.java:59) 在Org.jBase.el.PalS.AsMeDestorix.CuoKE(AsMasdiPix.java:65) 在Org.jBase.el.PalS.asValue.NoVoCK(AsValue.java:96) 在Org.jBase.E.MeoDeExpExistIMP.JooKE(MeaDeExpExistIMP.java:276) 在COM.Sun.FalelET.E.TaTraceOutExtudio.JooKE(TaTaMoOxExtudi.java:68) 在JavaX.FACK. …46更多

    1 回复  |  直到 14 年前
        1
  •  1
  •   Markos Fragkakis    15 年前

    这与seam ejb模块的名称有关。默认情况下,它的命名方式与maven将jar命名为:

    jboss-seam-2.2.0.ga.jar接口

    而weblogic只与

    jboss-seam.jar文件

    在jboss jira中创建了一个问题,包含一个简单的解决方法。

    https://jira.jboss.org/jira/browse/JBSEAM-4644