Мой компонент SFSB Seam связан с JNDI при развертывании, о чем свидетельствует это сообщение журнала:
Component: example, scope: CONVERSATION, type: STATEFUL_SESSION_BEAN,
class:com.purecharger.action.ExampleAction, JNDI: purecharger/ExampleAction/local
Мой интерфейс:
@Local
public interface Example {
public List<String> getExample();
public void destroy();
}
и моя реализация:
@Stateful
@Scope(ScopeType.CONVERSATION)
@Name("example")
@Restrict("#{identity.loggedIn}")
public class ExampleAction implements Example, Serializable {
....
}
Однако, когда я получаю доступ к компоненту voting
на странице xhtml, например, я получаю следующую ошибку:
javax.el.ELException: /home.xhtml: Could not instantiate Seam component: example
....
Caused by: javax.naming.NameNotFoundException: ExampleAction not bound
Если Seam был достаточно умен, чтобы установить мой компонент, используя шаблон JNDI в файле components.xml (purecharger/#{ejbName}/local
), почему он также не применяет шаблон при поиске компонентов?
Спасибо.
UPDATE:
Глядя на JNDIView в JBoss, имя purecharger/ExampleAction/local
нигде не связано. Итак, я думаю, что мой вопрос теперь звучит так: почему Seam не добавляет этот SFSB в JNDI?