我有一个有状态的会话 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 中似乎做得很好。我仍然无法弄清楚为什么在页面上调用它不起作用。