アノテーション @EJB エンティティと EJB3.1 関連コードを変更せずに、Tomcat7 で EJB3.1 POJOS を使用した JSF2 Web アプリケーションを実行できます。
私は PrimeFaces 3.4.x、Eclipselink JPA 2.3、EJB3.1 を使用しています。
最後に、JavaEE6 サーバーを使用せずに Tomcat7 に固執したいと考えています。これは、一部の顧客が内部の制約により新しい Java EE サーバーに移行できなかったためです。
しかし、ネイティブクエリおよび/または基準クエリが、結合(左、外部、および内部結合)、複数のテーブルへの挿入などのJPAでうまく機能することを望みます.
GlassFish3.1 との私の旅は、EJB3.1、Eclipselink JPA を使用した primefaces CRUD アプリケーションでかなりうまくいきました。
しかし、EJB コードを変更しないと、EJB セッション Bean のインスタンス化に失敗するため、アプリケーションを実行できませんでした。
アプリケーションが Tomcat 7 と Glassfih3.x で動作するように、設計とソース コードを変更することを考えています。EJB3.1 を避け、DAO などを使用することもできます (つまり、Java EE6 パターンではなく J2EE パターンを使用します)。
UsersController.java の EJB3.1 コード スニペット:-
@EJB
(1) プライベート com.myapp.session.UsersFacade ejbFacade;
(2) プライベート UsersFacade getFacade() { return ejbFacade; }
// validateUser() メソッドは文字列を返します。(3) 文字列結果 = getFacade().validateUser();
perisistence.xml ファイル
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> jdbc/ABC false