我正在使用Spring Tool Suite(真的是日食)。我刚刚创建了一个新的 springMVC 项目并创建了一个简单的控制器。STS 创建项目的方式存在问题,因此我不得不手动修复 pom 中的 groupID 和工件 ID。我目前遇到的问题是我似乎无法访问我的雄猫服务器(由 STS 发布和启动)。我已经检查了 tomcat 中的目录结构,它发布的地方似乎一切正常,但是当我尝试点击控制器时,我得到了 404。雄猫日志看起来好像没有任何东西试图连接到它。它们还显示我的控制器已映射:
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配置(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/");
}
}
是否有指定应用基本路径的配置文件?
看看我们工作区的.metadata
目录。它有一个.plugins
文件夹,该文件夹包含org.eclipse.wst.server.core
目录,并且有一个(或多个)tmp0
目录。它包含一个wtpwebapps
目录。这包含已使用的名称(例如 MyApp
)的已部署 Web 应用程序。
<Workspace>.metadata.pluginsorg.eclipse.wst.server.coretmp0wtpwebappsMyApp
然后您的登录页面位于
http://localhost[:8080]/MyApp/Login
http://localhost/ims/Login
将命中端口80
;默认情况下,tomcat在端口8080
上运行。因此,除非您已将 tomcat 的 HTTP 端口更改为 80
否则您需要使用localhost:8080
如果端口良好,请检查您的应用程序上下文路径是否确实ims
,默认情况下它是生成的WAR
文件的确切名称。如果使用 WTP,eclipse"服务器"视图将在服务器实例下显示它。
如果上下文路径良好,请检查web.xml
描述符中配置的 URL 映射。确保 REST/MVC servlet URL 聚合的 URL 中没有缺少前缀。在您的情况下,您似乎应该使用.../resources/Login
因为您将资源配置为在/resources/**
模式下。