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