java - 无法进入我的 spring boot Controller 方法

标签 java spring spring-mvc tomcat spring-boot

已经有一段时间了,我正在更新我的 Spring 和 Spring boot 技能。为此,我正在构建一个 Web 应用程序。这是我的 Controller 的一部分:

@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;
    }

部署似乎很顺利,war 被命名为 theta-server 并且正在进入 tomcat/webapps OK,所以我转到我的浏览器并输入:

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 boot 应用程序,横幅显示在我的日志文件中。

但是没有错误,我想知道为什么我得到 404。

Spring Security 的日志中有消息表明没有围绕验证的控制,因此它似乎收到了请求,但没有随它去任何地方。

此外,还看到:Spring Boot Controller 404并确保我的 Controller 位于我的应用程序类下的包中。

我有一个贯穿整个堆栈的集成测试,所以我相信 Spring 的代码至少是正确的。

最佳答案

我遇到了同样的问题。请按照下面的说明在主类中添加您的 Controller 包名称。

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

它为我解决了。

关于java - 无法进入我的 spring boot Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38960469/

相关文章:

java - 如何在同一项目中连接两个数据库 MySQL 和 MongoDB?是否可以?

java - Tomcat - 当应用程序未正确部署时如何获取 http 500 而不是 404?

spring - Spring 属性文件中的转义属性引用

spring - 为什么@Async 注释会导致循环引用问题?

java - Hibernate 7.0.2 : javax. 验证.NoProviderFoundException

java - Spring Boot仅在表单中使用@valid验证特定属性

spring - JSTL 中 defaultHtmlEscape web.xml 的用法

java - 如何使用递增计数器在 XSLT 中提供唯一 ID?

java - 验证帐户并获取权限

java - 查看运行时期间调用的所有方法 - Eclipse Java