2

数日間の検索、試行、およびヘッドバンギングの後、この質問を SO に投稿しますが、既に回答されているようです。

シナリオは次のとおりです。(現時点では) 1 つの WAR と 1 つの EJB モジュールを含む EAR アプリケーションがあります。EJB モジュールは JPA (persistence.xml) を使用し、一部のステートレス セッション Bean は Web サービス経由で公開されます。Web サービスは、jdbc レルムによる基本認証を使用します。Web モジュールは、同じレルムでフォーム認証を使用します。

要件:このアプリケーションを異なるサーバー (dev/test/prod) または同じサーバー (またはクラスター) に異なるデプロイメント記述子でデプロイできる必要があります。各アプリケーション インスタンスで異なる必要がある展開設定は次のとおりです。

  • persistence.xml の jta-data-source
  • web.xml のレルム名
  • web.xml の javax.faces.PROJECT_STAGE
  • glassfish-ejb-jar.xml の webservice-endpoint\endpoint-address-uri および login-config\realm
  • application.xml の context-root (違いがあれば、web.xml に移動できます。以下を参照してください)
  • glassfish-application.xml のレルム

私の研究の間、私は以下を管理しました:

  • を使用して javax.faces.PROJECT_STAGE をオーバーライドできますasadmin set-web-context-param
  • デプロイ プランを使用して、glassfish-ejb-jar.xml のすべての設定をオーバーライドできます。asadmin deploy
  • 同じことがglassfish-application.xmlにも当てはまります
  • おそらくコンテキストルートをオーバーライドできますasadmin deploy(これが EAR 内の複数の Web モジュールでどのように機能するかはわかりません)。

ここまでは順調ですね。これにより、次の問題が発生します。

  • web.xml のレルム名を簡単に変更するにはどうすればよいですか?
  • persistence.xml の jta-data-sourceを簡単に変更するにはどうすればよいですか?

簡単に言えば、展開中、または展開計画 jar に似たものを使用することを意味します。変更された .xml ファイルだけで ejb.jar または war の複数のコピーを維持することはできません。

明確にするために、必要なのは、同じアプリケーションを使用するさまざまなデータベース (さまざまな開発段階またはさまざまな顧客用) を持つことです。アプリケーションは 1 つの持続性ユニットを使用しますが、別のデータベースを指す必要があります (したがって、jta-data-source)。レルムは、アプリケーション インスタンスごとに異なる必要がある (同じデータベース上の) jdbc レルムです。

どんな助けやポインタも大歓迎です。

4

2 に答える 2

1

デプロイメント記述子のテンプレートを準備し、ビルド中にプロパティ ファイルから値を入力することを検討しましたか? ant を使用している場合は、expandpropertiesフィルターを使用できます。

于 2012-08-03T17:52:50.850 に答える
0

デプロイメント プラン jar を使用して、これらすべてのことを行うことができます。

デプロイメントに関連する重い作業が発生する前に、デプロイメント プラン jar のコンテンツがアプリケーションのアーカイブ/ディレクトリ ツリーにプッシュされるようです。

見る

http://java.net/projects/glassfish/sources/svn/content/trunk/main/appserver/deployment/javaee-core/src/main/java/org/glassfish/javaee/core/deployment/DolProvider.java

http://java.net/projects/glassfish/sources/svn/content/trunk/main/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/archivist/Archivist.java

于 2012-08-03T21:58:43.867 に答える