5

私はそのようなapplication.xmlを持っています。

  <module>
    <web>
      <web-uri>services-inboxService.war</web-uri>
      <context-root>/services/inboxService</context-root>
    </web>
  </module>

異なる context-roots を 1 つの web-uri にマップしたいと思います。ただし、制約があり、各モジュールには 1 つのWebセクションと各Web (1 つのcontext-rootセクションのみ)を含める必要があります。この war ファイルを別の名前でコピーする以外に方法はありますか?

4

1 に答える 1

5

Yegoshin Maxim-JavaEEベースのWebアプリケーションのURIの概念について明確にする必要があると思います。

<hostname:port/context-root/resource-path?parameters>

これで、インストールされている同じアプリケーションで異なるホスト名とポートの組み合わせを使用したい場合は、Tomcat、WebSphereなどのほとんどのアプリサーバーでサポートされている仮想ホスティングの概念を使用する必要があります。

別のリソースパスを使用してWebアプリケーションの同じリソースにマップする場合は、web.xmlでurl-patternを構成します。

これで、誰かがアプリケーションの単一のインストールに別のコンテキストルートを使用したい場合、それは不可能です。クラスローダーの観点から考えても。コンテキストは、アプリサーバークラスローダーの子であるコンテキストクラスローダーの作成につながります。1つのWebアプリに複数のコンテキストクラスローダーを含めることはできません。そうしないと、リソース/クラス参照を解決できません。したがって、唯一の解決策は、アプリの複数のインスタンスを異なるコンテキストルートで実行することです。

于 2012-08-22T12:53:35.670 に答える