2015-09-25 2 views
1

Мое веб-приложение использует Weblogic 10.3.6, Javaee 5 и аутентификацию по LDAP. После успешной аутентификации мой фильтр попытаться выполнить chain.doFilter(request, response); И бросает это исключениеjava.lang.IllegalStateException: невозможно изменить размер буфера - уже записано 315 байт (сервлет 2.3, сек. 5.1)

####<Sep 25, 2015 11:34:54 AM BRT> <Error> <HTTP> <viniciusbrito-Vostro-230> <AdminServer> <[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1443191694402> <BEA-101020> <[[email protected][app:frente-loja-web module:frente-loja-web.war path:/frente-loja-web spec-version:2.5]] Servlet failed with Exception 
java.lang.IllegalStateException: Cannot resize buffer - 315 bytes have already been written (Servlet 2.3, sec. 5.1) 
    at weblogic.servlet.internal.ServletResponseImpl.setBufferSize(ServletResponseImpl.java:357) 
    at weblogic.servlet.jsp.PageContextImpl.initialize(PageContextImpl.java:74) 
    at weblogic.servlet.jsp.PageContextImpl.<init>(PageContextImpl.java:110) 
    at weblogic.servlet.jsp.JspFactoryImpl.getPageContext(JspFactoryImpl.java:40) 
    at jsp_servlet.__index._jspService(__index.java:60) 
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) 
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
    at br.com.pernambucanas.painelnfecomun.web.util.AutenticacaoFilter.doFilter(AutenticacaoFilter.java:48) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) 
> 

Однако мое приложение по-прежнему работает.

+0

Hi Sheep, вы решили это? если да, то как? спасибо – user648026

+0

Нет, мой брат = ( –

ответ

1

Я не могу дать окончательный ответ, не зная больше.

Но в нижней строке указано, что что-то записывается в буфер ответа, пока не вызывается setBufferSize. Вам нужно определить, что это такое и инвертировать эту логику.

Для уточнения, если ваш код аутентификации записывает что-то в качестве ответа, например перенаправление/переадресацию, и вы вызываете chain.doFilter (запрос, ответ) после этого, вы получите эту ошибку, поскольку doFilter вызывает setBufferSize после того, как вы уже написали какой-то ответ.

Смежные вопросы