Странная проблема с сессионным компонентом SEAM - PullRequest
1 голос
/ 07 мая 2010

У меня есть сессионный компонент с состоянием.

@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, кажется, делает удар ногой просто отлично. Я все еще не мог понять, почему вызов этого на странице не работает.

1 Ответ

0 голосов
/ 07 мая 2010

Это довольно странно.

Вы пробовали

#{chuckNorrisBean.roundHouseKick()}

вместо

#{chuckNorrisBean.roundHouseKick}

Просто чтобы посмотреть, что происходит

...