已经有一段时间了,我正在更新弹簧和弹簧启动的技能。为此,我正在构建一个Web应用程序。这是我的控制器的一部分:
@Controller
public class LoginController {
@RequestMapping(value = "/validate", method= RequestMethod.GET)
@ResponseBody
public String validate( @RequestParam(RequestConstants.KEY_USERKEY) String userkey) {
String result = loginService.validate(userkey)
? RequestConstants.KEY_SUCCESS
: RequestConstants.KEY_FAILURE;
return result;
}
部署似乎没问题,战争被命名为theta-server,进入tomcat / webapps好了,所以我去浏览器输入:
http://testbox:8080/theta-server/validate?userkey=bob
我得到了404。
我查看日志。最初,我什么都没有,然后我发现了这个问题:Spring Boot War deployed to Tomcat这导致我转到这些文档:http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file现在它启动了Spring启动应用程序,横幅显示在我的日志文件中
然而,没有错误,我想知道为什么我会得到404.
Spring Security的日志中有消息表明没有围绕验证的控件,所以它似乎正在获取请求,但不会随身携带。
另外,看到:Spring Boot Controller 404并确保我的控制器位于Application类下面的包中。
我有一个贯穿整个堆栈的集成测试,所以我确信Spring的东西至少能正确编码。
答案 0 :(得分:0)
我也遇到了同样的问题。如下所述,在主类中添加您的控制器软件包名称。
@SpringBootApplication(scanBasePackages = {“ com.design.order.controller”}
它为我解决了。
答案 1 :(得分:-1)
尝试在@Controller下添加以下内容
@RequestMapping(value = "/theta-server")