SpringSource IDE不使用项目名称作为Spring MVC应用程序的根URL


问题内容

当我使用SpringSource IDE创建一个Spring MVC模板项目时,我运行该应用程序并将根URL设置为默认包名称的最后一个字:

例如,当我创建项目时,将默认包设置为com.sample.myapp。当我运行该应用程序时,它将在打开http://localhost:8080/myapp。为什么根URL不使用我的项目名称MyProject

这是一个问题,因为我必须在应用程序中指定所有URL,/myapp/resources/css/mycss.css但是当我导出.war并将其部署到Tomcat服务器时,Tomcat会改为使用项目名称(它希望我使用/MyProject/resources/css/mycss.css。),部署时,我所有的链接都断开了(但当我在SpringSource
IDE中本地运行于Tomcat时却没有断开…)

还有其他人遇到这个问题吗?


下面的评论讨论示例:

<bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
    <property name="service"
        value="https://localhost:8443/MyProject/j_spring_cas_security_check" />
    <property name="sendRenew" value="false" />
</bean>

问题答案:

这取决于您如何运行应用程序。我假设您从SpringSource
IDE(STS)中选择了“在服务器上运行”?如果双击STS中的服务器定义,则将看到“模块”选项卡。在这里,您可以编辑“路径”并将其设置为所需的任何值。当选择“在服务器上运行”时,STS必须定义一个上下文路径,并将其默认设置为默认包的最后一个元素。如果我没记错的话,默认情况下,Tomcat使用压缩或展开的.war的文件名。无论哪种情况,您都可以改写。

希望能有所帮助。