Container-verwaltete Kontexte mit JAX-WS

Goldfish

Bekanntes Mitglied
Hi, ich versuche gerade verzweifelt einen Persistenz-Kontext in meinen WebService zu injizieren, damit dieser auch vom Container verwaltet wird. Ist dies überhaupt möglich, oder muss ich in diesem Falle die komplette Transaktion einfach selbst verwalten?
Interessant ist die Frage unter anderem deshalb, da ich in meiner Anwendung EJBs und mehrere JAX-WS Services habe, die sich einige der Ressourcen untereinander teilen. Wenn dann halt die EJBs die Transaktionen selbst verwalten wollen, es über den WebService aber nicht geht, krieg ich dann nicht Probleme?

Code:
@WebService (endpointInterface = "my.endpoint",
                     ...)
public class MyWebServiceImpl implements MyWebServicePortType {

    private final static Logger logger = Logger.getLogger(MyWebServiceImpl.class.getName());

    @PersistenceContext (unitName = DBDefinitions.ORACLE_CONTEXT)
    private EntityManager oracleEntityManager;

Der EntityManager ist immer null. Ich hab auch schon versucht eine @Stateless Annotation ranzuhängen, was aber natürlich auch nicht funktioniert hat, da der Kontext hier ja über einen ganz anderen Weg erzeugt wird, wenn ich mich nicht täusche.
Aber hat jemand eine Ahnung, wie ich den EntityManager hier auch mit in eine Container-Verwaltung bekomme?
 

stg

Top Contributor
Ich sehe eigentlich keinen Grund, wieso das nicht funktionieren sollte. Den WebService mit @Stateless zu markieren ist schon der richtige Weg. Ich tippe einfach mal ins Blaue, dass du irgendwo noch alte xml-Konfiguratiions-Dateien liegen hast, die dir dazwischenschießen.
 

Neue Themen


Oben