2

私が取り組んでいるこのSpring MVCアプリケーションがあり、ステージングサーバーにデプロイしようとするまでは非常にうまく見えますが、この問題に遭遇しました。

事実:

  1. Tomcat 7 Maven プラグインを次の構成で使用すると、すべてうまく機能し、http://localhost:8080.
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.0</version>
  <configuration>
     <warSourceDirectory>${webappDirectory}</warSourceDirectory>
     <path>/</path>
     <port>${httpPort}</port>
     <httpsPort>${httpsPort}</httpsPort>
     <keystoreFile>${webappDirectory}/WEB-INF/some.keystore</keystoreFile>
     <keystorePass>broadleaf</keystorePass>
     <password>broadleaf</password>
  </configuration>
</plugin>

しかし、ポート 8080 でサービスを提供するスタンドアロンの Tomcat にこの同じコードをデプロイすると、ROOT.war使用しようとするとhttp://localhost:8080、404 エラーが発生します。しかし、指さすhttp://localhost:8080/somepageと、必要なものが得られます。

web.xmlこれは、 でウェルカム ページを宣言せず、代わりにサーブレットを宣言するSpring MVC アプリケーションです。

<servlet>
  <servlet-name>myservelet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
      <param-value>classpath:/applicationContext-servlet-cms-contentClient.xml/WEB-INF/applicationContext-servlet.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>myservelet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

Tomcat スタンドアロンを機能させるために他に何かする必要がありますか? ホームページを除く他のすべてのページは正しく提供されます。私は何が欠けていますか?

4

2 に答える 2

0

tomcat-maven-plugin のドキュメントから - 私は正しいようです。プラグインを利用する場合、プラグイン定義の変数を使用して初期コンテキストを定義します。

へのパスを変更する<path>/MotaNginya</path>と、それが新しいホームページになります。

プラグインを使用しない場合は、ホームページまたは「/」URL を自分で定義する必要があります。

便宜上、 tomcat-maven-plugin のドキュメントを参照してください。ページで「」を検索しUsing a different context path"ます。

于 2013-03-05T20:46:59.293 に答える
0

Tomcat 7 は、ROOT コンテキストでデフォルトのアプリケーションをホストします。そこに何かをデプロイしたい場合は、まずそれをアンインストールする必要があります。また、アプリの名前は ROOT.war などにする必要があることに注意してください。

于 2013-03-05T21:44:09.497 に答える