Поскольку Jersey 2.x не признавал LoggingFilter в последнем выпуске, мы пошли вперед с собственным журналом запроса/ответа Джерси вместе с log4j2. Мы используем springboot. Проблема возникает тогда, когда мы попали веб-службы с помощью метода POST, он бросает NegativeArraySizeExceptionДжерси 2.x выбрасывает NegativeArraySizeException при попытке выполнить запрос на ведение журнала, для запросов, не связанных с GET, с SpringBoot
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.