1

我有一个有状态的会话 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 之上。

谢谢!

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

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

应用服务器是 JBoss。

经过更多的调试和摆弄,把

<page view-id="/index.xhtml">
    <action execute="#{chuckNorrisBean.roundHouseKick}" />
</page>

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

4

1 回答 1

0

这很奇怪。

你有没有尝试过

#{chuckNorrisBean.roundHouseKick()}

代替

#{chuckNorrisBean.roundHouseKick}

只是想看看会发生什么

于 2010-05-07T08:23:36.840 回答