无法使用我的弹簧启动控制器方法

时间:2016-08-15 18:05:49

标签: java spring spring-mvc tomcat spring-boot

已经有一段时间了,我正在更新弹簧和弹簧启动的技能。为此,我正在构建一个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的东西至少能正确编码。

2 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题。如下所述,在主类中添加您的控制器软件包名称。

@SpringBootApplication(scanBasePackages = {“ com.design.order.controller”}

它为我解决了。

答案 1 :(得分:-1)

尝试在@Controller下添加以下内容

@RequestMapping(value = "/theta-server")