2

新しいマルチモジュールプロジェクト構造を設定しています。今のところ、ejbとearモジュールがあり、RESTfulWebサービス用のWebモジュールを追加したいと思います。最善のアプローチは何ですか?

アプリケーションは次のようになります(モジュールとそのコンテンツ):

  • app(pom):親pom
    • core(ejb):ejb、休止状態、DAO、エンティティ、ビジネスロジック
    • ear(ear):デプロイ可能なコンテナを作成するモジュール

ここで、RESTfulWebサービスモジュールを追加したいと思います。

http://www.jboss.org/jbossas/downloadsからjboss-as-7クイックスタートアプリケーションを見るwarと、jax-rsアノテーションが付いたBeanがejbプロジェクトの一部である間、残りのサービスをブートストラップするモジュールが常にあります(私の場合core

  • app
    • ejb(サービスとjax-rsアノテーション付きのBeanを含む)
    • ear
    • war(を含むだけweb.xml

このアプローチに関する私の問題は、ejbモジュールにサービスと残りのリソースが含まれていることです。それらを別々に保つ方が良いのではないでしょうか?またはこれは行く方法ですか?

そうでなければ:どちらのアプローチが良いでしょうか?

  • app
    • core
    • ear
    • rest(残りのリソースBeanとを含む戦争web.xml

また

  • app
    • core
    • ear
    • rest
    • rest-resources(残りのリソースBean用の個別のコンテナー)
    • rest-war(のみを含む戦争web.xml
4

2 に答える 2

1

この種のプロジェクトには、本当に素晴らしい JBoss Maven Archetype があります。

1) Maven 統合がインストールされた状態で Eclipse に移動します。 2) 新規 -> プロジェクト -> Maven
プロジェクト
3) [次へ]をクリックし ます。 archetypes"、アーティファクト ID: "jboss-javaee6-webapp-archetype" 6) EJB プロジェクトと WAR プロジェクトに接続する EAR を使用して、美しく構造化された Web アプリケーション プロジェクトが作成されます。


于 2012-05-23T13:44:13.467 に答える
1

JEE6/JAX-RS の観点からは、WAR ファイルが必要なのは、実際にアプリケーション サーバーに渡してデプロイするものを用意することだけです。文字通りリソースを含まなくても (有効なアーカイブにするために必要なものを除いて)、クラスパスのどこかでクラスが利用可能になっている限り、アプリケーションは動作します。したがって、適切と思われるこれらのクラスをバンドルするのは本当にあなた次第です。

必要なのは、javax.ws.rs.core.Application を拡張するクラスです。このクラスは、ロードする必要がある Web アーカイブに使用可能な REST リソースがあることをアプリケーション サーバーに示すためのマーカー/ブートストラップとして使用されます。ほとんどのショップで、このクラスが WAR プロジェクト自体に配置されているのを見てきました。

組織化のヒントを本当に探している場合は、すべての REST リソース クラスを独自のプロジェクトにグループ化することから始めることをお勧めします。リソース クラスが機能するために必要なすべてのプロジェクトを依存関係として追加します (たとえば、core プロジェクトや ear プロジェクト)。war プロジェクトの依存関係として 3 つすべて (rest、ear、core) を追加します。

次に、実装を進めながら、必要に応じてモデルを改良します。

于 2012-05-23T12:33:58.550 に答える