当尝试使用SpringBoot记录非GET请求的请求时,Jersey 2.x抛出NegativeArraySizeException

赌徒崛起

由于Jersey 2.x在最新版本中弃用了LoggingFilter,因此我们继续进行Jersey自己的请求/响应日志记录以及log4j2。我们正在使用springboot。当我们使用POST方法访问Web服务时会出现问题,它将引发NegativeArraySizeException

java.lang.NegativeArraySizeException
    at org.glassfish.jersey.logging.LoggingInterceptor.logInboundEntity(LoggingInterceptor.java:210) ~[jersey-common-2.23.2.jar:?]
    at org.glassfish.jersey.logging.ServerLoggingFilter.filter(ServerLoggingFilter.java:108) ~[jersey-common-2.23.2.jar:?]
    at org.glassfish.jersey.server.ContainerFilteringStage.apply(ContainerFilteringStage.java:132) ~[jersey-server-2.23.2.jar:?]
    at org.glassfish.jersey.server.ContainerFilteringStage.apply(ContainerFilteringStage.java:68) ~[jersey-server-2.23.2.jar:?]

我的log4j2配置-

<!-- Jersey logger -->
<AsyncLogger name="org.glassfish" level="all" additivity="false">
    <AppenderRef ref="Console" level="off" />
    <AppenderRef ref="RollingFileIO" level="all" />
</AsyncLogger>

如果我将日志级别设置为off,则一切正常。SpringBoot版本1.4.3

为了安全起见,我能够在Wireshark中看到传入的数据。

赌徒崛起

我得到了答案。为了让jersey记录日志,我们正在注册-

     jerseyConfig.register(
        new LoggingFeature(          
          java.util.logging.Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME),
          java.util.logging.Level.SEVERE, 
          LoggingFeature.Verbosity.PAYLOAD_ANY, 
          Integer.MAX_VALUE)
       );

在这里,第4个参数是maxEntitySize,即Integer.MAX_VALUE。因此,在创建日志记录缓冲区时,jersey用初始化数组maxEntity + 1,这导致了异常。

我将此值更改为一个较低的/逻辑数字,并且一切正常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试上传多部分/表单数据时,服务器在jersey 2.x中返回400错误请求

与requirejs一起使用时,AngularStrap 2.x抛出404找不到

Kibana 在尝试创建索引模式时抛出 429(请求过多)

使用量角器进行e2e测试时记录xhr请求

尝试登录时Yii2中的错误请求(#400)

尝试使用 oAuth2 在 haskell 中执行 https get 请求

WSO2在尝试联合登录时抛出EmptyStackException

使用变量处理Graphql查询时,Python请求抛出400

从字符串创建X509Certificate2时出现“找不到请求的对象”异常

从17.04升级后,x11vnc抛出“失败请求的X错误:BadMatch”

使用docker部署时,Flask CLI抛出“ [Errno 2] No such file”

使用URLConnection时java.lang.NegativeArraySizeException

HttpClient抛出“发送请求时发生错误”。

如何使用ggplot2更改每个方面的轴的限制和划分?处理“x$clone() 尝试应用非函数时出错”

django rest m2m 序列化程序抛出错误请求错误

Angular HTTP POST请求抛出net :: ERR_HTTP2_PROTOCOL_ERROR错误

Play 2.x:如何使用通用按钮发出AJAX请求

如何知道是否使用HTTP 1.x或HTTP2执行请求

如何使用 simple-oauth2 库发出请求 application/x-www-form-urlencoded?

基于以下JSON使用Rest Assured进行2x数组POST请求

如何使用 X509Certificate2 向 httpweb 请求添加证书

SpringBoot-解析HTTP请求标头时出错(Oauth2 https端点)

尝试连接到ec2时,cloudfront显示“请求无法满足502错误”

当我尝试执行Ajax请求时,Angular 2引发意外的令牌错误

Angular 2 HTTP json请求在尝试解析结果时给我一个奇怪的响应

Angular 2 + Vert.x:HTTP 请求的发送接收主体

Retrofit 2.x:用于请求和响应的日志头

尝试推送数据时未定义数组的角度2抛出错误

如何使用示例表为SOAP请求传递空值。记录2-6正在形成故障XML请求