У меня есть сессионный компонент с состоянием.
@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 к компоненту, она станет
@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()"
Какой-нибудь совет о том, что могло пойти не так с моим чаком?
Система построена на SEAM / richfaces.
Спасибо!
---- Отредактировано для добавления дополнительной информации ----
Проект построен с использованием maven 2.1, упакованного в виде ear (один файл .ear в качестве целевого вывода).
Сервер приложений - JBoss.
После дополнительной отладки и возни, ставим
<page view-id="/index.xhtml">
<action execute="#{chuckNorrisBean.roundHouseKick}" />
</page>
в pages.xml, кажется, делает удар ногой просто отлично. Я все еще не мог понять, почему вызов этого на странице не работает.