Я начал писать новую службу JBoss, предназначенную для использования некоторых существующих компонентов шва. Но, похоже, я не могу получить доступ к этим компонентам из-за несуществующих контекстов. Можно ли использовать их иначе, чем в типичной ситуации с JSF?Можно ли использовать Seam в сервисе JBoss?
Небольшой фрагмент кода, чтобы продемонстрировать то, что я хочу сделать ...
@Service
public class MyService extends DefaultTimedService implements TimedObject, DefaultServiceInterface {
@Timeout
public void ejbTimeout(Timer timer) {
MyInterface loader = (MyInterface) Component.getInstance(MyInterface.SEAM_NAME, true);
// throws no context!
}
}
Это бросает следующее исключение, например:
java.lang.IllegalStateException: No application context active
at org.jboss.seam.Component.forName(Component.java:1945)
at org.jboss.seam.Component.getInstance(Component.java:2005)
Спасибо тоже ... Я дам ему попробовать ... выглядит грязным, но обещающим :) –
The beginCall() сделал основы ... ну. Теперь я должен решить некоторые другие предпосылки, чтобы заставить мои компоненты работать. Благодаря! –
Еще один намек здесь ... beginCall() не запускает транзакцию, и все операции EntityManager терпят неудачу. Если вы используете beginCall() und endCall(), необходимо обрабатывать транзакцию тоже! Используя Transaction.instance(). Begin() и Transaction.instance(). Commit() Я мог бы заставить его реально сделать что-то реальное. –