spring-boot - Spring boot from 1.3.2 to 1.5.22 throws OOM error
问题描述
Upgrading spring boot from 1.3.2 to 1.5.22 gives the following error:
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.io.ByteArrayOutputStream.<init>(ByteArrayOutputStream.java:77)
at org.springframework.web.util.ContentCachingRequestWrapper.<init>(ContentCachingRequestWrapper.java:81)
at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:236)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.HttpWrapperFilter.doFilter(HttpWrapperFilter.java:27)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.service.CacheControlFilter.doFilter(CacheControlFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.service.AddUrlFilter.doFilter(AddUrlFilter.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.datadog.AbstractInstrumentedFilterX.doFilter(AbstractInstrumentedFilterX.java:95)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:111)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.ms.filters.MSLoggerContextFilter.doFilter(MSLoggerContextFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.service.Oauth2ClientIDValidator.doFilter(Oauth2ClientIDValidator.java:101)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.ms.filters.ContextCreatingFilter.doFilter(ContextCreatingFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
The applications build successful and starts successful but facing this exception while trying to access it.
解决方案
我发现了这个错误的实际问题。它与 LoggingFilter Max payload 设置有关。它被错误地设置为 Integer.MAX_VALUE。因此OOM问题。虽然这似乎适用于 Spring-Boot 1.3.2
推荐阅读
- python - Kivi:如何设置存储 Android 应用程序的 Output.txt 文件的路径
- laravel - Doctorine/Dbal - 更新表迁移在整数上添加不需要的“自动增量”(不是增量)
- c++ - C++ 使用带有位 OR 运算符的枚举
- javascript - 按下选项卡按钮或在状态列中输入“已分配”值时如何自动发送电子邮件
- xamarin - Xamarin.forms android 更改软件后退按钮布局背景颜色
- html - How to do styling on HTML tags contained within the hyperlink tag
- python - peewee.OperationalError:没有这样的功能:json
- sql-execution-plan - Apache Druid 原生查询解释计划
- python - Numpy/Python 使用跳转按百分比拆分数组
- javascript - JS insertAdjacentHTML() 被完全忽略