Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring@RequestMapping日志消息?_Java_Spring_Jax Rs_Spring Rest - Fatal编程技术网

Java Spring@RequestMapping日志消息?

Java Spring@RequestMapping日志消息?,java,spring,jax-rs,spring-rest,Java,Spring,Jax Rs,Spring Rest,我正试图反序列化来自Javascript UI的JSON对象,但我一直收到一个400-“客户端发送的请求在语法上不正确”错误。注意,我知道REST服务可以工作,因为如果我硬编码JSON,我可以成功地访问该服务,但现在我正试图从实际的JS对象生成JSON Spring是否生成有助于实现这一点的日志消息?如果是这样,那么我如何设置它 您可以将自己的日志过滤器添加到处理链中。使用spring boot,只需提供以下内容,例如: import javax.servlet.Filter; ... @Co

我正试图反序列化来自Javascript UI的JSON对象,但我一直收到一个400-“客户端发送的请求在语法上不正确”错误。注意,我知道REST服务可以工作,因为如果我硬编码JSON,我可以成功地访问该服务,但现在我正试图从实际的JS对象生成JSON


Spring是否生成有助于实现这一点的日志消息?如果是这样,那么我如何设置它

您可以将自己的日志过滤器添加到处理链中。使用spring boot,只需提供以下内容,例如:

import javax.servlet.Filter;
...

@Configuration / @SpringBootApplication
class Something {

    @Bean
    public Filter loggingFilter(){
        return new AbstractRequestLoggingFilter() {
            private final Logger log = LoggerFactory
                    .getLogger(Something.class);

            {
                setIncludeClientInfo(true);
                setIncludeQueryString(true);
                setIncludePayload(true);
            }

            @Override
            protected void beforeRequest(HttpServletRequest request, String message) {
                // not needed
            }

            @Override
            protected void afterRequest(HttpServletRequest request, String message) {
                log.info(message);
            }
        };
    }
结果类似于

{timestamp and such} : After request [uri=/v1/thing/1007?null;client=127.0.0.1;payload=  {
    "name": "test7"
  ]

畸形的身体。这并不是最好的过滤器,因为它忽略了有用的信息,例如http方法(POST、GET,…)请求、响应所用的时间等等。。。但如果你看看它的来源,你可以很容易地写出一个更好的,适合你的需要。尤其是
ContentCachingRequestWrapper
contentcachingressponsewrapper
允许您非常轻松地获取请求和响应的副本


除了servlet过滤器,您还可以添加一个类似的
HandlerInterceptor
——在这里您可以访问SpringMVC特定的详细信息,但如果不使用它们,您就无法访问请求和响应内容(比较)

我想您必须更正json。使用在线json编辑器:JSONLINTPROU您可以添加一个servlet过滤器来打印请求,使用spring您可以基于它查看示例您可以发布json和处理它的代码吗?我们怎么能在看不到任何东西的情况下说出什么是错误的呢?我发现了问题,一个类别属性的案例是错误的。但是,从@RequestMapping记录消息仍然很好。检查Fiddler(或另一个HTTP实用程序)是我的最佳选择吗?Fiddler或类似工具绝对应该放在工具带中。例如,可用性方面比日志记录要好得多。
   {
        "name": "test7"