0

Tomcat 6 で問題なく動作している webapp がありserver:8282/MyApplicationます。次のようなコンテキストxmlがあります。

<Context crossContext="true"
         debug="5"
         docBase="MyApplication"
         path="MyApplication"
         reloadable="true">

私のアプリケーションでは、私のリンクは次のようになります

server:8282/MyApplication/myAction.do?params=blah

Tomcat 7 に切り替えると、リンクが次のように変更されるようです。

server8282/myAction.do?params=blah

アプリケーションで何も変更していません。両方の場所で同じコードです。その「MyApplication」を元に戻すために変更できるグローバル設定はありますか?

編集: リンクを生成するコードは、例として次のとおりです。

<a href="<%=request.getContextPath() %>/myAction.do?params=blah">do the blah</a>
4

1 に答える 1

1

デプロイプロセスに問題があるようです。何らかの理由で、Tomcatがサーバーのルートでアプリケーションを提供しようとしています。これは、ユーザー${pageContext.request.contextPath}が空を返しているためです。

正確な展開要件がわからないため、次のいずれかの手順を試してください。構成の競合を確実に回避するために、新しいTomcat7インストールで実行してください。

  1. MyApplication.warファイルをドロップするだけの場合は、<CATALINA_HOME>\webappsコンテキストファイルを使用しないでください(warファイル内のコンテキストファイルに注意してください/META-INF/context.xml
  2. 展開されたアプリケーションがある場合は、そのMyApplication中にフォルダーを作成し、webappsそこにアプリケーションの内容をドロップします(ここでもno context.xml)。

アプリケーションを次の外部に保持する必要がある場合webapps

  1. 内部に新しいContext要素を追加します:<CATALINA_HOME>\conf\server.xml<Host>

    <Context path="/MyApplication"
             docBase="/absolute/physical/path/to/MyApplication" 
             reloadable="true"
             crossContext="true">
    
  2. または、上記の内容MyApplication.xmlでファイルを作成します。<CATALINA_HOME>\Catalina\localhost

詳細については、コンテキストコンテナのドキュメントを参照してください。

于 2013-02-16T01:20:19.380 に答える