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我得到我需要的东西时。

这是一个 Spring MVC 应用程序,它没有在 中声明欢迎页面web.xml,而是声明了一个 servlet:

<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>,这将是您的新主页。

不使用插件时,您必须自己定义主页或“/”网址。

为方便起见,请参阅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 回答