4

デフォルトでは、OFBiz は、それぞれ独自のフロント コントローラーを持つ小さな webapps のコレクションとして機能します。OFBiz Web アプリケーションは通常、多くの共通モジュールに依存しています。通常、特殊目的またはホットデプロイ下のモジュールは、フレームワークおよびアプリケーション下のほぼすべてのモジュールに依存することになります...埋め込みコンテナーを使用すると、すべてのライブラリがカタリナ共有ライブラリ クラス ローダーに入りますが、ofbiz をデプロイする必要がある場合簡単な方法はありません。私が信じている唯一の選択肢は

  1. EAR/libまたはEAR/APP-INF/libを使用した EAR としての biz のパッケージ。これにより、すべての Web アプリケーションが EAR レベルのクラスパス リソースの共通セットにアクセスできるようになります。通常、各モジュールのconfiglib、およびすべての重要なofbiz-$module です。瓶
  2. 各 webapp は、必要な各 jar を独自のWEB-INF/libにパッケージ化します。重複が多すぎて、ある意味でファイルシステムのフットプリントも増加します
  3. catalina shared.lib フォルダーの代わりにアプリケーション システムのクラスパスを使用します。つまり、JVM は ofbiz 専用にする必要があります。そうしないと、その jar が他の兄弟の展開や、通常は XML、XSL、 STAX API など

ofbiz がファイルシステム ( ofbiz.home + component:// )の結果を使用してほとんどのリソースをロードするとします。従来のサーブレット コンテキストのような方法で webapp が実際にアクセスする必要があるのは、

  • controller.xml
  • classpath リソース - shared.lib 内のさまざまな ofbiz-$module.jar にわたって。通常、各モジュールのconfiglib、およびすべての重要なofbiz-$module.jar
  • さまざまなモジュールの他の controller.xml のようなインポートされた (component://) webapp リソース。最も重要なのは、checkLogin や autoLogin などの定型的なセキュリティ実装を提供するFramework/common/webcommon/WEB-INF/controller.xmlです。

フロントコントローラーの名前空間を使用して、複数のWebアプリを単一のモノリシックWebアプリにパッケージ化して、戦争が/ ( TomcatのROOT )および/content/webtools/catalog/ ecommerceなどのような単一のルートコンテンツにマップできるようにすることができるかどうか疑問に思っていました. 個別の Web アプリケーションではなく、単なる URL 名前空間/サブコンテキストです。 Framework/common/webcommon/WEB-INF/controller.xmlは / (Tomcat の ROOT) のルート コントローラーになり、各コントローラーがその controller.xml をインポートすることなく、すべての webapps に checkLogin、autoLogin などを提供できます。

これにより、weblogic や jboss などの他のコンテナーに移動したい場合に、展開モデルを単純化できます。このような場合、すべての依存関係がWEB-INF/libにきちんとパッケージ化された単一の webapp を構築する方がよいでしょう。依存関係やバージョンに干渉することなく、同じコンテナー内の他のデプロイメントと共存できること...

struts には、ルート レベルの struts.xml (この場合は controller.xml) があり、各モジュールは独自の module/struts.xml または module/struts-module.xml などを含むフォルダーになる、この種のモジュラー ネームスペースがあったと思います。 ...

私は個人的にこれが役立つと感じています..私は欠点について十分に考えていません. たくさんありますか?正直わかりません。私はテーマについても十分に考えていません..開発者は明らかに、コードのレイアウトや編成の方法に変更が加えられることを望んでいません..では、マイナーな変更はありますか? :) フレームワークのコア MVC コードの変更により、候補 Web アプリをマージされたモノリシック Web アプリにステージングする単純な ant ビルド スクリプトを使用して、この種の展開をサポートできる可能性があります...

私はこのアイデアのメリットについての議論を見たいと思っていました...方向性とインプットが得られれば、この仕事をするためにいくらかの時間を投資したいと思っています..

4

2 に答える 2

3

代わりに Chef を使用して Ofbiz を展開することを検討しましたか?

それがどのように機能するかを示すために、次のクックブックを書きました。

于 2013-11-03T15:08:24.113 に答える