Ich habe angefangen, einen neuen JBoss-Dienst zu schreiben, der einige vorhandene Nahtkomponenten verwenden sollte. Aber es scheint, dass ich aufgrund nicht existierender Kontexte nicht auf diese Komponenten zugreifen kann. Ist es möglich, sie anders als in der typischen Situation mit JSF zu verwenden?Ist es möglich, Seam in einem zeitgesteuerten JBoss-Dienst zu verwenden?
Ein kleiner Ausschnitt zu zeigen, was ich ...
@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!
}
}
tun möchten, dass die folgende Ausnahme zum Beispiel wirft:
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)
Danke auch ... Ich werde es versuchen ... sieht dreckig, aber promissing :) –
Die beginCall() hat die Grundlagen ... gut. Jetzt muss ich noch einige andere Voraussetzungen erfüllen, damit meine Komponenten funktionieren. Vielen Dank! –
Ein weiterer Hinweis hier ... beginCall() startet keine Transaktion und alle EntityManager-Operationen scheitern in Ruhe. Bei Verwendung von beginCall() und endCall() ist es zwingend erforderlich, die Transaktion auch zu bearbeiten! Durch die Verwendung von Transaction.instance(). Begin() und Transaction.instance(). Commit() konnte ich etwas wirklich machen. –