2012-03-22 3 views
4

JEE5 Webアプリケーション(WAR)を開発し、WebLogic 11g(10.3.5)の実動環境で実行しています。WebLogic 11gに同じWebアプリケーションを2回配備する方法は?

同じアプリケーションを同じWebLogic上の異なる顧客(異なるURL、異なるデータ)に対して別々のアプリケーションとして配備する必要があります。

私は最初の部分を、それぞれの展開後に異なるコンテキストルートを設定して管理しました。

しかし、私は彼らが異なるデータソースを使用するためには至っていない - と私は顧客の特定のビルドを避けたいため、persistence.xmlのは、このようにも、永続性ユニット名すべてのアプリケーションで同じです。

このシナリオに最適な設定は何ですか?私は別々のビルドを強制し、その異なるWARによって強制するのですか、またはサーバーで管理されたサーバーやドメインを分離する必要がありますか、それを解決する良い方法がありますか?

+0

で見つけることができますが解決策を見つけましたか? – elopez

+0

@elopez:以下は私自身の答えです。 –

答えて

0

私は、Oracleのドキュメントで見たように、いくつかのドメインを持つことは、同じ永続ユニット名でデータソースを分ける唯一の方法です。これは、基本的に2つのWLSを並行して実行することを意味します。私は、顧客固有のpersistence.xmlファイルを含めるために、(私が最初に避けるためにしようとした)個別のWARファイルを構築して行くとWLSで顧客固有のデータソースを指定することにしました。このため

0

ServletContextListener.contextInitializedServletContextを見て、web.xmlにどの

ある展開把握、サーブレットコンテキストリスナーを定義することができます:YourServletContextListener.java

<listener> 
    <listener-class>com.path.YourServletContextListener</listener-class> 
</listener> 

、その後に、このようなcontextInitializedメソッドを追加します:

public void contextInitialized(ServletContextEvent sce) 
{ 
    ServletContext sc = sce.getServletContext(); 
    String name = sc.getContextPath(); 
    ... 
} 

私の考えでは、nameを使用することができます設定した複数のデータソースから選択します。デプロイされた方法に応じて、異なるデータベース接続を作成し、正しいアプリケーションのデータを保持します。

+0

もう少し詳しく説明できますか?どのように役立つでしょうか、私はその情報で何ができるでしょうか?情報に応じてアプリケーションコード内で異なる動作を行う必要はありませんか?私は_unchanged_コードを残して、展開時にそれを設定する方法を探しています。 –

+0

ご清聴ありがとうございます。しかし、永続性ユニットの名前を宣言しているpersistence.xmlと、エンティティマネージャを設定しているcomponents.xml(Seam 2から)を持っているので、私は自分自身で接続をしませんフレームワークによって構成されたエンティティマネージャを使用します。 –

+0

多分そのものはパラメータ化することができます、あなたが方法を見つけることを願って – dldnh

0

私はこのスレッドは非常に古いですが、このスレッドで同じ問題を抱えている人に役立つように返信しています。

最新のWebLogic 12.2.1を使用すると、単一のドメインで同じアプリケーションを実行させることができますマルチテナント(アドオン私は推測する)が付属しています。

編集: Weblogic 12.2.1は、パーティションと呼ばれる概念を導入しました。パーティションは、weblogicドメインの設定と実行時の両方の細分化です。単一のWeblogicドメインでは、複数のパーティションを作成できます。各パーティションには、1つ以上のリソースグループがあります。リソースグループは、データソース、jms、Java EEアプリケーションなどのweblogic resorcesの論理的なグループです。たとえば、元の投稿の内容を達成するために、リソースとしてWebアプリケーションとデータソースを含むリソースグループテンプレートを作成します。データソース設定では、DB URLとして実際のURLではなくプレースホルダー変数を指定できます。次に、このリソースグループテンプレートを参照する2つのパーティションを作成できます(各パーティションには個別のWebアプリケーションとデータソースが用意されています)。各パーティションは、同じJNDI名を持つ2つのデータソースを作成することによってそこのDB URLプロパティを上書きします。各パーティションでは、仮想ホスト/ポートを作成して、クライアントがそれぞれのパーティションで実行されているアプリケーションにアクセスできるようにします。

これについてより良く、より詳細な情報がhttps://blogs.oracle.com/WebLogicServer/entry/domain_partitions_for_multi_tenancy

関連する問題