私は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. WCF休憩サービスdefaultconnectionlimit
- 2. 休憩サービスの保護
- 3. restsharpで休憩サービスに投稿
- 4. 休憩サービスに投稿中の問題
- 5. 春データ休憩 -
- 6. 休憩;適切
- 7. 休憩API経由でjira問題にフラグを追加する方法
- 8. 休憩サービスを使用してSharePoint 2013で新しいリストを追加する方法
- 9. クロスドメイン休憩dojoコール
- 10. DialogViewController休憩UINavigationControllerパス
- 11. 休憩Azureのエンドポイント
- 12. カット()エラー - 「休憩」は
- 13. アンドロイドで複数の休憩サービスのリンクを呼び出す
- 14. iOS休憩Webサービス無効なホストエラーを返す
- 15. kie workbenchで休憩をとるには
- 16. 休憩を伴うファイルアップロード
- 17. .earファイルの配備(休憩サービスを含む)
- 18. 休憩サービスでhttpポストのパラメータを取得できません
- 19. 休憩サービスをご利用ください
- 20. JIRA休憩APIログインC#
- 21. WSO2AMログメディエータ例外(休憩中)
- 22. WCF休憩大jsonエラー
- 23. WCF休憩、3.5 - Javaの
- 24. Grailsの休憩XMLレンダリング
- 25. SugarCRM休憩終了点
- 26. 休憩サービスでC:\へのアクセスが拒否されました
- 27. 休憩サービスの機能的な使用方法
- 28. これを休憩サービスにどのように実装しますか?
- 29. 追加の依存休憩Mavenプロジェクト私は私のプロジェクトへの依存関係としてorg.apache.hbase追加
- 30. 休憩API Ajaxのコールは、主にURL
Tnx、私はあなたがどのように実装したかについてもっと知りたいと思います。 – Emil