猿问

如何在 Spring Boot 中调试请求?

我的电脑重新启动,我的应用程序今天不再运行。昨天还在工作。除了 Maven 下载新库(主要是 Amazon)之外,没有任何改变。现在我什至无法访问该/admin/login页面。如何调试请求?


2019-09-13 17:26:16.924  INFO 2056 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/admin/login],methods=[GET]}" onto public java.lang.String com.s.s.controller.Controller.login()

2019-09-13 17:26:21.465 ERROR 2056 --- [nio-8080-exec-1] c.s.s.c.Controller     : invalidRequest(): invalid request: /admin/login

@RequestMapping(value="/admin/login", method=RequestMethod.GET)

public String login() {

    return "login";

}

@RequestMapping("/error")

public void invalidRequest(HttpServletRequest request, HttpServletResponse response){


    Logger.error(TAG, "invalidRequest()", "invalid request: " + request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI));

    try {

        response.setStatus(HttpStatus.OK.value());

        response.getWriter().write("This is not a valid request");

    } catch (IOException e) {

        Logger.error(TAG, "invalidRequest: ", "Exception in invalidRequest() method "+e.getMessage());

    }

}

@Override

public String getErrorPath() {

    return "/error";

}

我设置了这一行,application.properties但它没有打印任何额外的内容。


logging.level.com.s.s.controller.Controller=DEBUG

我运行mvn clean并重新启动服务器,但没有帮助。


我设置了这一行,application.properties但它没有打印任何有用的内容。


debug=true

我在 Makgigrahul 的答案中找到了以下搜索内容spring-sleuth,并将其添加到application.properties生成此日志中。


logging.level.org.springframework.web.servlet.DispatcherServlet=DEBUG


胡说叔叔
浏览 121回答 2
2回答

肥皂起泡泡

您可以尝试在org.apache.catalina.core.ApplicationFilterChain#doFilter中设置断点。这在请求处理的开始阶段非常好。或者你可以看看 org.springframework.web.servlet.DispatcherServlet#doDispatch

绝地无双

我能够使用 Andreas 的答案进行调试,并看到了值request.request.filterChain.filters[]并看到了我的过滤器remoteAddressFilter()和锯子remoteAddress = 0:0:0:0:0:0:0:1。我有一个 IP 过滤器 ( RemoteAddrFilter),允许的值之一是127.0.0.1. 我正在使用 访问服务器http://localhost:8080/admin/home,它显然使用 IP6 地址。可能是重新启动计算机的 Windows 更新改变了网络行为。当我使用时http://127.0.0.1:8080/admin/home它有效。我想向过滤器添加日志记录以在被阻止时发出通知,但没有明显的方法。Amazing Spring 不会在调试模式下记录过滤器。
随时随地看视频慕课网APP

相关分类

Java
我要回答