Java.lang.IllegalArgumentException: значение null в WebSphere при увеличении размера полезной нагрузкиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java.lang.IllegalArgumentException: значение null в WebSphere при увеличении размера полезной нагрузки

Сообщение Anonymous »

Я столкнулся с проблемой в приложении Spring Boot, размещенном на WebSphere. Когда размер полезных данных увеличивается, приложение выдает следующее исключение:

Код: Выделить всё

java.lang.IllegalArgumentException: null
at com.ibm.wsspi.webcontainer.util.RequestUtils.parseQueryString(RequestUtils.java:288)
...
Эта ошибка возникает при обработке запроса POST с большой полезной нагрузкой. Однако та же функциональность прекрасно работает и с меньшими полезными нагрузками.
Вот моя конфигурация @InitBinder:

Код: Выделить всё

@InitBinder
public void dataBinding(WebDataBinder binder) {
binder.setAutoGrowCollectionLimit(4500);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
Я установил лимит сбора на 4500, что подходит для небольших полезных данных. Но по мере увеличения размера полезной нагрузки приложение выходит из строя с указанным ниже исключением. Трассировка стека указывает, что сбой произошел в:

Код: Выделить всё

com.ibm.wsspi.webcontainer.util.RequestUtils.parseQueryString(RequestUtils.java:288)
Полная трассировка стека:

Код: Выделить всё

java.lang.IllegalArgumentException:  n u l l < b r   / >         a t   c o m . i b m . w s s p i . w e b c o n t a i n e r . u t i l . R e q u e s t U t i l s . p a r s e Q u e r y S t r i n g ( R e q u e s t U t i l s . j a v a : 2 8 8 ) < b r   / >         a t   c o m . i b m . w s s p i . w e b c o n t a i n e r . u t i l . R e q u e s t U t i l s . p a r s e Q u e r y S t r i n g ( R e q u e s t U t i l s . j a v a : 1 0 8 ) < b r   / >         a t   c o m . i b m . w s . w e b c o n t a i n e r . s e r v l e t . R e q u e s t U t i l s . p a r s e P o s t D a t a ( R e q u e s t U t i l s . j a v a : 3 8 4 ) < b r   / >         a t   c o m . i b m . w s . w e b c o n t a i n e r . s e r v l e t . R e q u e s t U t i l s . p a r s e P o s t D a t a L o n g ( R e q u e s t U t i l s . j a v a : 3 9 6 ) < b r   / >         a t   c o m . i b m . w s . w e b c o n t a i n e r . s r t . S R T S e r v l e t R e q u e s t . p a r s e P a r a m e t e r s ( S R T S e r v l e t R e q u e s t . j a v a : 2 3 9 8 ) < b r   / >         a t   c o m . i b m . w s . w e b c o n t a i n e r . s r t . S R T S e r v l e t R e q u e s t . g e t P a r a m e t e r M a p ( S R T S e r v l e t R e q u e s t . j a v a : 3 0 4 2 ) < b r   / >         a t   j a v a x . s e r v l e t . S e r v l e t R e q u e s t W r a p p e r . g e t P a r a m e t e r M a p ( S e r v l e t R e q u e s t W r a p p e r . j a v a : 2 0 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . f i r e w a l l . S t r i c t H t t p F i r e w a l l $ S t r i c t F i r e w a l l e d R e q u e s t . g e t P a r a m e t e r M a p ( S t r i c t H t t p F i r e w a l l . j a v a : 7 7 8 ) < b r   / >         a t   j a v a x . s e r v l e t . S e r v l e t R e q u e s t W r a p p e r . g e t P a r a m e t e r M a p ( S e r v l e t R e q u e s t W r a p p e r . j a v a : 2 0 3 ) < b r   / >         a t   j a v a x . s e r v l e t . S e r v l e t R e q u e s t W r a p p e r . g e t P a r a m e t e r M a p ( S e r v l e t R e q u e s t W r a p p e r . j a v a : 2 0 3 ) < b r   / >         a t   j a v a x . s e r v l e t . S e r v l e t R e q u e s t W r a p p e r . g e t P a r a m e t e r M a p ( S e r v l e t R e q u e s t W r a p p e r . j a v a : 2 0 3 ) < b r   / >         a t   c o m . v a y a n a . b o o t . i n f r a . w e b . s e c u r i t y . f i l t e r . X S S R e q u e s t W r a p p e r . & l t ; i n i t & g t ; ( X S S R e q u e s t W r a p p e r . j a v a : 3 4 ) < b r   / >         a t   c o m . v a y a n a . b o o t . i n f r a . w e b . s e c u r i t y . f i l t e r . S e c u r i t y F i l t e r . d o F i l t e r ( S e c u r i t y F i l t e r . j a v a : 8 4 ) < b r   / >         a t   c o m . i b m . w s . w e b c o n t a i n e r . f i l t e r . F i l t e r I n s t a n c e W r a p p e r . d o F i l t e r ( F i l t e r I n s t a n c e W r a p p e r . j a v a : 1 9 7 ) < b r   / >         a t   c o m . i b m . w s . w e b c o n t a i n e r . f i l t e r . W e b A p p F i l t e r C h a i n . d o F i l t e r ( W e b A p p F i l t e r C h a i n . j a v a : 9 0 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . i n t e r c e p t . F i l t e r S e c u r i t y I n t e r c e p t o r . i n v o k e ( F i l t e r S e c u r i t y I n t e r c e p t o r . j a v a : 1 1 5 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . i n t e r c e p t . F i l t e r S e c u r i t y I n t e r c e p t o r . d o F i l t e r ( F i l t e r S e c u r i t y I n t e r c e p t o r . j a v a : 8 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . E x c e p t i o n T r a n s l a t i o n F i l t e r . d o F i l t e r ( E x c e p t i o n T r a n s l a t i o n F i l t e r . j a v a : 1 2 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . E x c e p t i o n T r a n s l a t i o n F i l t e r . d o F i l t e r ( E x c e p t i o n T r a n s l a t i o n F i l t e r . j a v a : 1 1 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e s s i o n . S e s s i o n M a n a g e m e n t F i l t e r . d o F i l t e r ( S e s s i o n M a n a g e m e n t F i l t e r . j a v a : 1 2 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e s s i o n . S e s s i o n M a n a g e m e n t F i l t e r . d o F i l t e r ( S e s s i o n M a n a g e m e n t F i l t e r . j a v a : 8 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . A n o n y m o u s A u t h e n t i c a t i o n F i l t e r . d o F i l t e r ( A n o n y m o u s A u t h e n t i c a t i o n F i l t e r . j a v a : 1 0 9 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e r v l e t a p i . S e c u r i t y C o n t e x t H o l d e r A w a r e R e q u e s t F i l t e r . d o F i l t e r ( S e c u r i t y C o n t e x t H o l d e r A w a r e R e q u e s t F i l t e r . j a v a : 1 4 9 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s a v e d r e q u e s t . R e q u e s t C a c h e A w a r e F i l t e r . d o F i l t e r ( R e q u e s t C a c h e A w a r e F i l t e r . j a v a : 6 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e s s i o n . C o n c u r r e n t S e s s i o n F i l t e r . d o F i l t e r ( C o n c u r r e n t S e s s i o n F i l t e r . j a v a : 1 4 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e s s i o n . C o n c u r r e n t S e s s i o n F i l t e r . d o F i l t e r ( C o n c u r r e n t S e s s i o n F i l t e r . j a v a : 1 2 5 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . A b s t r a c t A u t h e n t i c a t i o n P r o c e s s i n g F i l t e r . d o F i l t e r ( A b s t r a c t A u t h e n t i c a t i o n P r o c e s s i n g F i l t e r . j a v a : 2 2 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . A b s t r a c t A u t h e n t i c a t i o n P r o c e s s i n g F i l t e r . d o F i l t e r ( A b s t r a c t A u t h e n t i c a t i o n P r o c e s s i n g F i l t e r . j a v a : 2 1 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . l o g o u t . L o g o u t F i l t e r . d o F i l t e r ( L o g o u t F i l t e r . j a v a : 1 0 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . l o g o u t . L o g o u t F i l t e r . d o F i l t e r ( L o g o u t F i l t e r . j a v a : 8 9 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . c s r f . C s r f F i l t e r . d o F i l t e r I n t e r n a l ( C s r f F i l t e r . j a v a : 1 3 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . h e a d e r . H e a d e r W r i t e r F i l t e r . d o H e a d e r s A f t e r ( H e a d e r W r i t e r F i l t e r . j a v a : 9 0 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . h e a d e r . H e a d e r W r i t e r F i l t e r . d o F i l t e r I n t e r n a l ( H e a d e r W r i t e r F i l t e r . j a v a : 7 5 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . c o n t e x t . S e c u r i t y C o n t e x t P e r s i s t e n c e F i l t e r . d o F i l t e r ( S e c u r i t y C o n t e x t P e r s i s t e n c e F i l t e r . j a v a : 1 1 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . c o n t e x t . S e c u r i t y C o n t e x t P e r s i s t e n c e F i l t e r . d o F i l t e r ( S e c u r i t y C o n t e x t P e r s i s t e n c e F i l t e r . j a v a : 8 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 4 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . c o n t e x t . r e q u e s t . a s y n c . W e b A s y n c M a n a g e r I n t e g r a t i o n F i l t e r . d o F i l t e r I n t e r n a l ( W e b A s y n c M a n a g e r I n t e g r a t i o n F i l t e r . j a v a : 5 5 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F ilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:197)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:90)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:197)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:90)
at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126)
at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64)
at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:197)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:90)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:197)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:90)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:197)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:90)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:979)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1119)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:82)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:966)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:382)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:532)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:318)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1833)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1909)
Шаги, которые я пробовал:

Код: Выделить всё

Increased the binder.setAutoGrowCollectionLimit.

Validated the payload size by testing with smaller data.
Наблюдения:

Код: Выделить всё

It works for payloads of smaller sizes (e.g., 600 entries).

The error is triggered when the payload exceeds a certain size.
Вопросы:
1. Существует ли определенная конфигурация WebSphere или ограничение, требующее корректировка для обработки более крупных полезных данных?
2. Может ли это быть связано с ограничениями на размер параметров запроса или строки запроса в WebSphere? Если да, то как я могу изменить соответствующие конфигурации?
3. Существуют ли какие-либо другие настройки или методы для эффективной обработки больших полезных данных в WebSphere или Spring Boot?< /p>
4. Может ли проблема быть связана с брандмауэром веб-приложений (WAF), установленным в нашей производственной среде и налагающим строгие ограничения на длину тела запроса? Если да, то как мы можем настроить Spring Boot для эффективной обработки больших объемов полезной нагрузки, не вызывая ограничений WAF?
Среда:

Код: Выделить всё

WebSphere Application Server 9
Spring Boot 2.7.18.
Java 8
Будем очень признательны за любые идеи и предложения!
РЕДАКТИРОВАТЬ:
В нашей производственной среде имеется брандмауэр веб-приложений (WAF) для повышения безопасности. Однако этот WAF накладывает строгие ограничения на длину тела запроса, что становится проблемой при обработке больших полезных данных. В результате мы сталкиваемся с проблемами, когда запросы, превышающие этот лимит, отклоняются, что приводит к сбоям в работе нашего приложения. Есть ли простой способ справиться с этим с помощью Spring Boot.


Подробнее здесь: https://stackoverflow.com/questions/792 ... e-increase
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»