Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Rest 在LogginInterceptor中记录有效负载_Rest_Logging_Jax Rs_Cxf - Fatal编程技术网

Rest 在LogginInterceptor中记录有效负载

Rest 在LogginInterceptor中记录有效负载,rest,logging,jax-rs,cxf,Rest,Logging,Jax Rs,Cxf,我正在使用CXF REST服务连接两个应用程序。我在POST请求中将对象列表传递给其他应用程序。我意识到,若列表大小超过30000,则在另一端只接收到29998个元素。我只是想确认这是否属实,所以我开始深入研究CXF日志代码。 LoggingOutiterCeptor类记录默认情况下限制为102400字节的有效负载,因此我可以覆盖它并查看发送端的有效负载 但LogginInterceptor不会记录接收端的有效负载,因此我无法比较有效负载,以查看两者是否相同,或者接收端是否被截断 是否有更好的方

我正在使用CXF REST服务连接两个应用程序。我在POST请求中将对象列表传递给其他应用程序。我意识到,若列表大小超过30000,则在另一端只接收到29998个元素。我只是想确认这是否属实,所以我开始深入研究CXF日志代码。 LoggingOutiterCeptor类记录默认情况下限制为102400字节的有效负载,因此我可以覆盖它并查看发送端的有效负载

但LogginInterceptor不会记录接收端的有效负载,因此我无法比较有效负载,以查看两者是否相同,或者接收端是否被截断

是否有更好的方法记录接收端请求正文中发送的数据。
欢迎任何建议

在启动tomcat之前,我在连接器配置的代码中发现了check。HTTP没有这样的限制检查,除了POST请求最大大小限制

private final Tomcat tomcat = new Tomcat();
Connector connector = tomcat.getConnector();
connector.setMaxParameterCount(30000);
我的post请求总共有3个参数,如下所示。现在,由于最大参数为30000,只有前2个参数和第3个参数的29998通过导线传输

为了解决这个问题,我将API改为接受JSON而不是表单参数。JSON对象是单参数,因此不违反最大参数计数。这就是我的新旧API的外观

旧API:

@POST
@Path("/create")
public void create(@FormParam("id") long id, @FormParam("date") LocalDate date, @FormParam("oldPkeys") List<Long> oldPkeys, @FormParam("newPkeys") List<Long> newPkeys);
MyJSONObject是包含旧PKEY和新PKEY的自定义对象

@POST
@Path("/createElements")
@Consumes(APPLICATION_JSON)
public void createElements(@QueryParam("id") long id, @QueryParam("date") LocalDate date, MyJSONObject pKeys);