Wenn ich gut verstehe, möchten Sie EJB3/JPA in einem Servlet-Container verwenden.
Es gibt nicht nur Stand-alone-Implementierungen von PPV, sondern auch embeddable EJB3 Container, wie OpenEJB oder Glassfish embeddable container. Nichts hindert Sie daran, einen solchen einbettbaren Container aus dem Servlet-Container zu starten, um EJB3 zu verwenden.
(Hinweis: Ich kenne nicht alle Details über Transaktionen. In einem voll funktionsfähigen App-Server haben Sie JTA und einen verteilten Transaktionsmanager. Sie haben das nicht in einem Servlet-Container wie Tomcat. JPA funktioniert mit JTA und JDBC, aber ich weiß nicht genau, wie ein einbettbarer Container ohne JTA funktioniert, aber ich denke, das würde funktionieren, da solche einbettbaren Container auch für Komponententests gedacht sind, bei denen kein JTA vorhanden ist Transaktionsmanager.)
Ein anderer Ansatz wäre, Spring zu verwenden. Spring und EJB3 sind sich tatsächlich sehr ähnlich geworden. Sie können den Spring-DI-Container innerhalb des Servlet-Containers starten und von den gleichen Funktionen wie EJB3 (deklarative Transaktionen usw.) profitieren. Siehe diesen Beitrag über Spring vs. EJB3.
Alle diese Technologien sind ziemlich modular geworden, vor allem mit Java EE-Profilen. Sie können Sevlets, EJB3, JMS, JPA, sogar JTA irgendwie unabhängig von einander benutzen. Sie können auch eine Umgebung erstellen, in der Sie die gewünschten auswählen, entweder mit Spring oder mit Java EE. Die Frage ist, wann es aufhört, Sinn zu machen und eher eine App zu benutzen. Server mit allem, was verfügbar und leicht zu verwalten ist. Ich denke, Servlet/EJB3/JPA ist die Grenze, wenn mehr benötigt wird, gehen Sie für eine App. Server.
Aber mit einem Web-Container? –
Ja, basierend auf einem Servlet-Container. Ich habe das hinzugefügt. – deamon
Siehe auch diese Frage, [Was bekomme ich außer EAR und EJB von einem Java EE App-Server, den ich nicht in einem Servlet-Container wie Tomcat bekomme?] (Http://stackoverflow.com/a/9199893/190816) –