我的应用程序出现以下错误:
2012-04-27 12:29:07,623 4540114 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] (http-localhost%2F127.0.0.1-8080-3:) committing transaction after phase: INVOKE_APPLICATION 5
2012-04-27 12:29:07,623 4540114 DEBUG [org.jboss.seam.transaction.UTTransaction] (http-localhost%2F127.0.0.1-8080-3:) committing JTA transaction
2012-04-27 12:29:07,624 4540115 ERROR [org.jboss.aspects.tx.TxPolicy] (http-localhost%2F127.0.0.1-8080-3:) javax.ejb.NoSuchEJBException: Could not find stateful bean: a2d6v-rpg5ad-h1j0xu2n-1-h1j3g9no-cb
2012-04-27 12:29:07,624 4540115 WARN [org.jboss.seam.jsf.SeamPhaseListener] (http-localhost%2F127.0.0.1-8080-3:) uncaught exception, passing to exception handler
java.lang.IllegalStateException: Could not commit transaction
at org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListener.java:625)
调试时我在应用程序部分成功,当涉及页面重定向时,会发生此错误。
有人可以给我一些关于它可能出错的指示吗?
答案 0 :(得分:0)
我遇到了类似的问题,这与豆子本身的超时有关。
您可以使用注释
在有状态bean本身上设置超时@CacheConfig (maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)
或者通过将JBOSS_HOME \ server \ default \ conf \ standardjboss.xml设置为:
<container-configuration>
<container-name>Standard Stateful SessionBean</container-name>
...
<container-cache-conf>
...
<cache-policy-conf>
<remover-period>0</remover-period>
<max-bean-life>900</max-bean-life>
给出的参数是秒 我亲自更改了standardjboss.xml以使其成为全局的。我把卸妆期设为0,这样它就变得无穷无尽了。如果它小于最大bean寿命,那么它的状态将被删除,如果没有触及bean,你将得到javax.ejb.NoSuchEJBException。 还值得检查一下,你实际上需要一个有状态的豆子。
https://community.jboss.org/wiki/howdothetimeoutsworkwithejb3statefulbeans
https://community.jboss.org/wiki/JbossTimeoutSettingForSeam
http://docs.jboss.org/seam/2.2.2.Final/reference/en-US/html_single/#d0e25223