【问题标题】:Home page showing using Tomcat7 Maven plug-in but not using standalone Tomcat显示使用 Tomcat7 Maven 插件但未使用独立 Tomcat 的主页
【发布时间】:2013-02-20 05:54:27
【问题描述】:

我有一个正在开发的 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>

但是当我在独立的 Tomcat 上部署相同的代码时,该 Tomcat 使用 ROOT.war 在端口 8080 上提供服务 - 我尝试使用 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 做些什么才能让它工作吗?除主页外,所有其他页面均正确提供。我错过了什么?

【问题讨论】:

  • 你有定义“/”的RequestMapping的控制器吗?尝试在末尾使用“localhost:8080”,看看你得到了什么。
  • 我的原始代码没有,因为我使用的是 CMS。我尝试添加一个有效但它没有显示页面的所有预初始化数据,因为某些部分未正确初始化。我不明白为什么它可以与插件一起使用但不能独立使用?
  • 我不熟悉 tomcat-maven-plugin,但我的假设是如果没有明确定义,插件会为“/”的初始映射定义一个主页。
  • 它可能由插件声明的 / 部分定义。

标签: spring model-view-controller maven tomcat


【解决方案1】:

Tomcat 7 将在 ROOT 上下文中托管一个默认应用程序。如果你想在那里部署一些东西,你需要先卸载它。另请注意,您的应用应命名为 ROOT.war 或类似名称。

【讨论】:

    【解决方案2】:

    来自 tomcat-maven-plugin 的文档 - 看起来我是对的。在使用插件时,它使用插件定义中的变量来定义初始上下文。

    您可以将路径修改为&lt;path&gt;/MotaNginya&lt;/path&gt;,这将是您的新主页。

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

    为方便起见,请参阅tomcat-maven-plugin 文档。在页面上搜索“Using a different context path"”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 2014-09-19
      • 2011-11-18
      • 2014-10-12
      • 2016-11-06
      相关资源
      最近更新 更多