私はjerseyを使用してstrutsアプリケーションに休憩サービスを追加しようとしています。これは、ストラットと休憩の両方で共通にアクセスできるような方法でJavaコードを分離する必要がありますこれは、コードが残りのストラットとストラットの両方で共有されるように行われます。変更が両方のサービスに反映されるように、コードが共有されるようにします。このアイデアのどれが実現可能であり、 。strutsアプリケーションに休憩サービスを追加する
答えて
私たちのプレゼンテーション層はStrutsベースではありませんが(通常はSpring Web MVCまたはJSF)、Spring 3.0 + Java EE 6、具体的にはEJB 3.0とJPA 2.0を使用します。
EJB 3.0ステートレスセッションBeanは、宣言的(アノテーションベース)の依存関係注入およびトランザクション境界設定を持つことができます。また、従来のメカニズムを使用してトランザクション、依存関係、およびリソースを管理することもできます。これらはJPA 2.0とシームレスに統合され、単体テストにも簡単です。純粋なSpring Beansの主な利点は、Webアプリケーションとは独立して(EJB JARとして)デプロイできることです。
フロントフェイスのWebサービスでは、Jersey/JAX-RSも使用します。 Jersey/JAX-RS依存関係注入は壊れているため(Java EEの他の部分と同様にWeld/CDIは使用しません)、Spring DIを使用して、フロントエンドのRESTリソースクラスを'バックエンド' EJB良いことは、EJBをMVCコントローラに注入するのに十分うまく機能し、JSFマネージドBeanでも使用できることです。あるいは、Spring単独でREST-fulリソースを書くこともできます(いずれの方法も独自の賛否両論がありますが、一般的にどちらもうまく機能します)。
私は全面的に光っていることを知っていますが、私はリクエストに応じて詳細を共有してうれしいです。
EDIT:要求ごととしていくつかの詳細は、。
あなたはJersey/JAX-RSを学ぶためにはじめてですが、Jersey User Guideでなければなりません。また、ネット上で簡単に見つけることができるチュートリアルや例がいくつかあります。
Jersey/JAX-RSリソースをStrutsページと同じWARにパッケージングできるはずですが、我々はそれらを別々に配備するより簡単な方法を採用しました。
Glassfish 3.1にデプロイすると、thisというバグが発生し、hereも記載されています。要するに、@EJB
注射が期待通りに機能しないということです。
代わりにjersey-spring
contribモジュールを使用して、exampleに続いてSpringに戻りました。
とにかく、残りは標準Java EE 6/EJB 3.0です。すべての共通の機能を識別し、「サービス」レイヤーに配置します。これらのレイヤーは、ほとんどが@Stateless
というEJBとして実装されています。
永続性は、JPA @Entity
によって処理され、JPAインジェクションEntityManager
によってアクセスされます。トランザクションは、@TransactionAttribute
を使用して宣言的に区切られます。
はここで、一般的なEJB + JPAサービス豆の迅速なイラストです:
@Stateless
public class WidgetServiceBean implements WidgetService {
@PersistenceContext
private EntityManager em;
@Override
public List<Widget> findWidgetByName(String name) {
return em.createNamedQuery("Widget.findByName", Widget.class)
.setParam("name", name).getResultList();
}
@Override
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void removeWidgetById(int id) {
em.find(Widget.class, id).remove();
}
}
(明らかにない生産品質が、ちょうど彼らがいかに「リーン」を示しています。)
サービスレイヤーとエンティティは、個別にデプロイできるEJB JARとしてパッケージ化され、グローバルJNDIルックアップを介して他のすべてのモジュールで使用できるようになりました。また、StrutsやJAX-RS WARやJava EE 6(Glassfish 3.x)の配備で発見され、モジュールの一部として配備され、同じWAR内の他のコンポーネントで利用可能になります。
とにかくSpringコンテナを使用している場合は、Spring Beanを使用する方が簡単だと主張する人もいます。おそらく、おそらく、Springの永続性フレームワークとSpringのトランザクションフレームワークを使用する必要があります。 (Springは宣言的なトランザクションと永続性も提供しています。)すでにSpringに多額の投資をしているのであれば、より簡単な方法かもしれません。
OTOH、EJB 3.0、JPA 2.0およびJTAも以前のバージョンから大幅に簡略化されています。およびはJava EE標準の一部です。したがって、多くのディメンションを持つアーキテクチャ上の決定です。
- 1. パーソナルツリー、休憩を追加
- 2. 休憩サービスを持つWebアプリケーション
- 3. WCF休憩サービスdefaultconnectionlimit
- 4. 休憩サービスのエラーシナリオ
- 5. 休憩サービスに関する理論
- 6. 休憩サービスの保護
- 7. モックのJava Webサービス休憩
- 8. JUnitで休憩サービスをテストする
- 9. 休憩サービスで休憩サービスの入力パラメータが変更されました
- 10. 休憩サービスに投稿中の問題
- 11. restsharpで休憩サービスに投稿
- 12. 休憩パターンルールを作成する指示を追加
- 13. WCF休憩サービスhttpからhttpsエラー404
- 14. ビル春ブーツ休憩サービスのスターターガイドコード
- 15. エラー415 WebサービスSpringで休憩
- 16. 問題:Cassandraで休憩アプリケーションを接続
- 17. JSONデータをWCF休憩サービスにポストする
- 18. 休憩APIを使ってwowzaでストリームターゲットをFacebookに追加するには?
- 19. 休憩API経由でjira問題にフラグを追加する方法
- 20. :休憩フレームワーク
- 21. 休憩;適切
- 22. 休憩フィードデータ
- 23. 休憩ジェネリックが
- 24. 春データ休憩 -
- 25. のフルカレンダー休憩
- 26. 春休憩:
- 27. 休憩サービスを使用してSharePoint 2013で新しいリストを追加する方法
- 28. クライアント側の休憩サービスを模擬する方法
- 29. 双方向オブジェクトで休憩サービスをする
- 30. 休憩パスをテストするには?
Tnx、私はあなたがどのように実装したかについてもっと知りたいと思います。 – Emil