我有一个正在处理的 Spring MVC 应用程序,在我尝试部署到暂存服务器之前,一切看起来都非常好 - 然后我遇到了这个问题。
事实:
- 当我使用具有以下配置的 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>
但是,当我在使用 ROOT.war
服务于端口 8080 的独立 Tomcat 上部署相同的代码时 - 我尝试使用 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 独立执行其他操作才能使其正常工作吗?除主页外,所有其他页面均已正确提供。我错过了什么?
最佳答案
来自 tomcat-maven-plugin 的文档 - 看起来我是对的。使用插件时,它使用插件定义中的变量来定义初始上下文。
您可以将路径修改为<path>/MotaNginya</path>
那将是您的新主页。
不使用插件时,您必须自己定义主页或“/”url。
请参阅tomcat-maven-plugin为您提供方便的文档。在页面上搜索“Using a different context path"
。
关于spring - 显示使用 Tomcat7 Maven 插件但未使用独立 Tomcat 的主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15230443/