필자는 기존의 일부 이음매 구성 요소를 사용하기위한 새로운 JBoss 시간 서비스를 작성하기 시작했습니다. 그러나 존재하지 않는 컨텍스트 때문에 이러한 구성 요소에 액세스 할 수없는 것으로 보입니다. JSF의 일반적인 상황 이외의 다른 기능을 사용할 수 있습니까? JBoss Timed 서비스에서 Seam을 사용할 수 있습니까?
내가하고 싶은 것을 보여주기 위해 작은 조각
... 예를 들어 다음과 같은 예외가 발생@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)
고마워요 ... 나는 그것을 시도해 볼 것입니다 ... 더러워 보이지만 약속 : :) –
beginCall()은 기본을 잘 ... 잘했습니다. 이제는 구성 요소가 작동하도록 다른 사전 조건을 해결해야합니다. 감사! –
한 번 더 힌트 ... beginCall()은 트랜잭션을 시작하지 않고 모든 EntityManager 작업이 자동으로 실패합니다. beginCall() 및 endCall()을 사용하는 경우에도 트랜잭션을 처리해야합니다. Transaction.instance(). begin() 및 Transaction.instance(). commit()을 사용하여 실제로 뭔가를 수행 할 수 있습니다. –