【问题标题】:Determine web app path确定 Web 应用程序路径
【发布时间】:2013-10-14 15:33:55
【问题描述】:

我正在使用 Spring Tool Suite(真的是 Eclipse)。我刚刚创建了一个新的 springMVC 项目并创建了一个简单的控制器。 STS 创建项目的方式存在问题,因此我不得不手动修复 pom.xml 中的 groupID 和 artifactID。我目前遇到的问题是我似乎无法访问我的 tomcat 服务器(由 STS 发布和启动)。我检查了 tomcat 中发布它的目录结构,一切似乎都很好,但是当我尝试点击控制器时,我得到了 404。 tomcat 日志看起来好像没有任何东西尝试连接到它。它们还显示我的控制器已被映射:

2013-10-14 09:09:17.763] INFO  o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/Login],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.verisk.underwriting.ims.web.IMSController.test()

这是我的控制器的样子:

@Controller
@RequestMapping("Login")
public class IMSController
{
    @RequestMapping(value = "", method = RequestMethod.GET)
    @ResponseBody
    public String test()
    {
        return "SUCCESS";
    }
}

这个应用叫做 ims,所以我应该可以用这个请求来访问这个控制器:

http://localhost/ims/Login

使用 java config (AppConfig.java) 进行配置:

    @Configuration
    @EnableWebMvc
    @ComponentScan(basePackages = "com.some.package.ims.web")
    public class AppConfig extends WebMvcConfigurerAdapter
    {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry)
        {
             registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");  
        }
    }

是否有指定应用程序基本路径的配置文件?

【问题讨论】:

    标签: eclipse spring maven tomcat spring-mvc


    【解决方案1】:

    查看我们工作区的.metadata 目录。它有一个.plugins 文件夹,其中包含org.eclipse.wst.server.core 目录,并且有一个(或多个)tmp0 目录。其中包含一个wtpwebapps 目录。这包含使用的名称已部署的 web 应用程序 - 例如 MyApp

    <Workspace>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyApp
    

    那么您的登录页面位于

    http://localhost[:8080]/MyApp/Login
    

    【讨论】:

    • 这是来自指定文件:org.eclipse.jst.jee.server\:ims=C\:\\Tomcat7\\wtpwebapps\\ims 我配置为在端口 80 上运行 tomcat这适用于我的其他应用程序。
    【解决方案2】:

    http://localhost/ims/Login 将访问端口 80 ;默认情况下,tomcat 在端口8080 上运行。所以除非你把tomcat的HTTP端口改成80你需要使用localhost:8080

    如果端口是好的,那么检查你的应用程序上下文路径是否真的是ims,默认情况下它是生成的WAR文件的确切名称。如果你使用 WTP,eclipse "servers" 视图会在服务器实例下显示它。

    如果上下文路径良好,则检查 web.xml 描述符中配置的 URL 映射。确保您没有在 REST/MVC servlet URL 聚合的 URL 中缺少前缀。在您的情况下,您似乎应该使用.../resources/Login,因为您将资源配置为/resources/** 模式。

    【讨论】:

    • 在哪里可以找到应用程序上下文路径?
    • 仍然不行,我的tomcat日志没有改变。通常,如果我点击了一个错误的网址,它会说“没有找到...的映射”(假设我点击了正确的应用程序路径)
    • 上下文路径默认是war文件的名字。你如何在 tomcat 上部署你的应用程序?
    • 这只是一个由eclipse构建和部署的maven项目。
    • 那么应该是eclipse项目的名称。
    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2018-04-19
    • 2015-03-10
    相关资源
    最近更新 更多