RPC を使用する単純な Google Web Toolkit アプリケーションを作成したいと考えています。永続性については、Java Persistence API のようなものを使用したいと考えています。
これは、Glassfish のようなアプリケーション サーバーを使用する必要があるということですか? または、単純な Web コンテナーを使用できますか?
具体的なライブラリに関しては、どのように進めればよいですか? トップリンク? 冬眠?...
GWT RPC は単純なサーブレットとして実装されていると思います。前提として、Tomcat のような Web コンテナーで JPA を完全に使用でき、本格的な J2EE アプリケーション サーバーは必要ありません。
これを行うには、PersistenceContext へのアクセスを簡単にするために、少し手動でセットアップする必要があります。Hibernate は ThreadLocal の使用を提案しており、Tomcat でそれをどのように行ったかについて詳しく説明しているブログのエントリがあります。
Tomcat よりも安定性が高く、実装が適切で、一般的に品質が高いため、Glassfish を個人的にお勧めします。(J2EE を Tomcat に入れることは、豚に口紅をつけるようなものだと言って) 炎上戦争を始めたくはありませんが、すべてのアプリケーションをどのようにデプロイするかについて説明します。
Glassfish を Web コンテナーとして使用し、TopLink を永続化プロバイダーとして使用し、通常は MySQL 5 データベースに接続します。JPA POJO は、EJB 層から Web 層、そして RPC を介して GWT 層までずっと使用されています。また、AJAX 機能を必要としないすべてのプレゼンテーション ロジックにストライプと JSP を使用しています。このアプローチで問題が発生したことはなく、これまでに少なくとも 10 件の大規模プロジェクトをこの方法で実行してきました。これはこれまでで最高のアーキテクチャであり、多くの (Tomcat、jboss、休止状態、Struts、Spring など) があります。
好きなコンテナを使用できます。つまり、サーブレットと jpa コンテナです。
重要な点は、GWT は jpa をサポートしていないため、DTO 設計パートを使用する必要があるということです。これにより、すべてが整理され、遅延読み込みの問題が発生しなくなります。