0

我有一个相当大的小程序(54,000 行代码),它提供了无数的:

    java.lang.IllegalStateException: getWriter() has already been called for this response

- 加载所需的小程序库时出现异常。据我所知,它们不是由我的代码直接引起的。该页面是在 Glassfish 4.1 上运行的 JSF 2.2 xhtml。

我正在使用 applet 标记,因为 Object 标记不支持百分比宽度。

<applet code="org.appletinterface.CriteriaInterface.class" 
        archive="CriteriaInterfaceApplet.jar, lib/AbsoluteLayout.jar, lib/appframework-1.0.3.jar, lib/beansbinding-1.2.1.jar, lib/SearchCriteriaEditor.jar, lib/swing-worker-1.1.jar" 
        id="criteriaApplet"
        width="100%" 
        height="1600"
        centerimage="false"
        >
</applet>

小程序加载正常,但我想在开始 beta 测试之前摆脱这些错误。它每次都会吐出 11,183 行这些错误,因此它不是可以轻易忽略的东西。

我即将启动一个为期 4 年、144,000 行的项目(我是唯一的程序员),并且在启动前的时间已经不多了,因此我们将不胜感激。

更新:碰巧我正在检查另一个导致小程序暂时冻结的错误。问题是在 jPanel 上设置背景会导致完全相同的两个错误,在下面列出的第二批错误中,发生。生成了许多错误,导致小程序在输出到 Netbeans 控制台时冻结。这个 jPanel 具有设置其他几个面板的背景颜色的绑定,因此我只需要设置一个面板的背景颜色。

移除绑定并手动更改其他面板的颜色解决了这个问题。在设置背景颜色时使用 Try-Catch 不会捕获任何错误。但是,当小程序加载时,我仍然遇到错误并且仍在调查。是否有任何其他捕获错误的方法,例如缺少哪些尝试捕获的后台问题?

小程序开始加载时产生的初始错误是以下四次:

        INFO:   Exception when handling error trying to reset the response.
    java.io.IOException: An existing connection was forcibly closed by the remote host
        at sun.nio.ch.SocketDispatcher.write0(Native Method)
        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
        at sun.nio.ch.IOUtil.write(IOUtil.java:51)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
        at org.glassfish.grizzly.nio.transport.TCPNIOUtils.flushByteBuffer(TCPNIOUtils.java:149)
        at org.glassfish.grizzly.nio.transport.TCPNIOUtils.writeCompositeBuffer(TCPNIOUtils.java:87)
        at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.write0(TCPNIOAsyncQueueWriter.java:112)
        at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.write0(TCPNIOAsyncQueueWriter.java:91)
        at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.processAsync(AbstractNIOAsyncQueueWriter.java:333)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:108)
        at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
        at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.executeIoEvent(WorkerThreadIOStrategy.java:103)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.executeIoEvent(AbstractIOStrategy.java:89)
        at org.glassfish.grizzly.nio.SelectorRunner.iterateKeyEvents(SelectorRunner.java:414)
        at org.glassfish.grizzly.nio.SelectorRunner.iterateKeys(SelectorRunner.java:383)
        at org.glassfish.grizzly.nio.SelectorRunner.doSelect(SelectorRunner.java:347)
        at org.glassfish.grizzly.nio.SelectorRunner.run(SelectorRunner.java:278)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
        at java.lang.Thread.run(Thread.java:744)

然后 getWriter() 错误开始;这两个最多可以重复 30 次:

            WARNING:   Servlet.service() for servlet default threw exception
    java.lang.IllegalStateException: getWriter() has already been called for this response
        at org.apache.catalina.connector.Response.getOutputStream(Response.java:746)
        at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:206)
        at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:142)
        at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1026)
        at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:568)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at sun.reflect.GeneratedMethodAccessor1330.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:323)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:321)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:356)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:214)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1676)
        at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:875)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:695)
        at org.apache.catalina.core.ApplicationDispatcher.access$100(ApplicationDispatcher.java:98)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude.run(ApplicationDispatcher.java:201)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude.run(ApplicationDispatcher.java:190)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:618)
        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:500)
        at org.apache.catalina.core.StandardHostValve.dispatchToErrorPage(StandardHostValve.java:699)
        at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:380)
        at org.apache.catalina.core.StandardHostValve.postInvoke(StandardHostValve.java:234)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:417)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
        at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
        at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
        at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
        at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
        at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
        at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
        at java.lang.Thread.run(Thread.java:744)

    WARNING:   org.apache.catalina.core.StandardHostValve@18bc551: Exception Processing ErrorPage[errorCode=404, location=/PageNotFoundRedirect.xhtml]
    java.lang.IllegalStateException: getWriter() has already been called for this response
        at org.apache.catalina.connector.Response.getOutputStream(Response.java:746)
        at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:206)
        at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:142)
        at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1026)
        at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:568)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at sun.reflect.GeneratedMethodAccessor1330.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:323)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:321)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:356)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:214)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1676)
        at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:875)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:695)
        at org.apache.catalina.core.ApplicationDispatcher.access$100(ApplicationDispatcher.java:98)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude.run(ApplicationDispatcher.java:201)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude.run(ApplicationDispatcher.java:190)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:618)
        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:500)
        at org.apache.catalina.core.StandardHostValve.dispatchToErrorPage(StandardHostValve.java:699)
        at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:380)
        at org.apache.catalina.core.StandardHostValve.postInvoke(StandardHostValve.java:234)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:417)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
        at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
        at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
        at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
        at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
        at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
        at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
        at java.lang.Thread.run(Thread.java:744)
4

0 回答 0