SEAM有状态会话bean的奇怪问题

时间:2010-05-07 07:46:08

标签: seam richfaces ejb stateful seam2

我有一个有状态的会话bean。

@Scope(ScopeType.SESSION)
@Name("chuckNorrisBean")
public class ChuckNorrisBean implements Serializable, ChuckNorris

有一些功能

public void roundHouseKick()
{
    ...
}

接口

@Local
public interface ChuckNorris
{
    public void roundHouseKick()
    {
        ...
    }
}

并使用

在jsf .xhtml页面上调用它们
#{chuckNorrisBean.roundHouseKick}

完美无缺。但是,如果我将@Stateful注释添加到bean中,那么它就变成了

@Stateful
@Scope(ScopeType.SESSION)
@Name("chuckNorrisBean")
public class ChuckNorrisBean implements Serializable, ChuckNorris

并且页面将加载有关于

的例外抱怨
Exception during request processing:Caused by javax.servlet.ServletException 
with message: "#{chuckNorrisBean.roundHouseKick}: javax.el.MethodNotFoundException: 
//localhost/universe/earth.xhtml @41,65 action=
"#{chuckNorrisBean.roundHouseKick}": Method not found: 
ChuckNorrisBean:a6gkg-w6das4-g8wmgh0y-1-g8woy0wo-4b.roundHouseKick()" 

关于我的chuckNorrisBean可能出错的任何建议?

系统建立在SEAM / richfaces上。

谢谢!

----编辑添加更多信息----

该项目是使用maven 2.1打包为ear(单个.ear文件作为目标输出)。

应用程序服务器是JBoss。

经过更多的调试和调整,放

<page view-id="/index.xhtml">
    <action execute="#{chuckNorrisBean.roundHouseKick}" />
</page>
在pages.xml中的

似乎踢得很好。我仍然无法弄清楚为什么在页面上调用它不起作用。

1 个答案:

答案 0 :(得分:0)

这很奇怪。

你试过吗

#{chuckNorrisBean.roundHouseKick()}

而不是

#{chuckNorrisBean.roundHouseKick}

看看会发生什么