0

NetbeansでWebアプリケーションを作成し、そのアプリケーションを「aa-bb.war」というファイルにパッケージ化しました。プロジェクトをNetBeansで実行すると、「localhost:8080 / aa/bb」でプロジェクトにアクセスできます。これはすべて良いです。

ただし、.warファイルを標準のTomcatインストールに移動すると、問題が発生します。.warを「webapp」ディレクトリにドロップすると、「webapp / aa-bb」に展開されますが、本当に必要なのは「webapp / aa / bb」です(「-」と「/」の間にあることに注意してください)。 「aa」と「bb」)...したがって、bbは「aa」のサブディレクトリにある必要があります。

これについての私の理解は、tomcatが.warのファイル名を使用して展開ディレクトリを作成するためです。したがって、warは「aa-bb」と呼ばれるため、明らかにハイフンを使用します。私の「context.xml」ファイルには正しいパス「aa/bb」がありますが、Tomcat 5+は.warで指定されたコンテキストパスを無視し、代わりにファイル名に基づいてパスを作成することを読みました。

tomcatにサブディレクトリを使用させるにはどうすればよいですか(結果のURL("aa-bb"と"aa / bb")のわずかな違いのように見えるかもしれません)が、実際には取得できない理由で大きな問題です。今すぐに(ただ物事を複雑にします)。

4

2 に答える 2

0

Tomcat の標準的な展開構造では、すべてのアプリケーションが最初のレベルの階層にあります。アプリケーション フォルダーにドロップした context.war ファイルは、最終的にhttp://host/context経由でアクセスできるようになります。言及したサブディレクトリ aa/bb を強制することはできないと確信していますが、次の方法で実装をだますことができます。 (3) サーブレットまたはフィルターがある場合は、それらのマッピングも bb/servlet に変更します。

于 2010-01-07T02:18:23.127 に答える
0

どのようなオプションがありますか? path=""最近、Tomcat が を無視しているとは知りませんでした。

  1. Apache を前に置き、mod_redirectormod_proxyを使用して、Apache の aa/bb のリクエストを Tomcat の aa-bb に転送します。

  2. 使用している Web フレームワーク (存在する場合) に応じて、Web アプリケーションで UrlRewriteFilterを使用します。webapp aa.war を呼び出してから、UrlRewriteFilter に、アプリ内の /bb/ へのリクエストを / だけに集中させるように指示します。

于 2010-01-07T19:58:09.567 に答える