gpt4 book ai didi

wildfly-8 - 是什么导致了 WildFly/Undertow 管道破裂错误?

转载 作者:行者123 更新时间:2023-12-03 06:53:44 28 4
gpt4 key购买 nike

在 NetBeans 下运行的 WildFly 8.1.0.Final 安装中,我不断收到以下看似随机的错误:

08:51:09,742 ERROR [io.undertow.request] (default task-40) Blocking request failed   HttpServerExchange{ GET /web/faces/javax.faces.resource/dynamiccontent.properties}:   java.lang.RuntimeException: java.io.IOException: Broken pipe
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:527)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:287)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_20]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_20]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_20]
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.8.0_20]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1.8.0_20]
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) [rt.jar:1.8.0_20]
at sun.nio.ch.IOUtil.write(IOUtil.java:65) [rt.jar:1.8.0_20]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470) [rt.jar:1.8.0_20]
at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150) [xnio-nio-3.2.2.Final.jar:3.2.2.Final]
at io.undertow.server.protocol.http.HttpResponseConduit.write(HttpResponseConduit.java:531)
at io.undertow.conduits.ChunkedStreamSinkConduit.flush(ChunkedStreamSinkConduit.java:256)
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162) [xnio-api-3.2.2.Final.jar:3.2.2.Final]
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:100)
at org.xnio.channels.Channels.flushBlocking(Channels.java:63) [xnio-api-3.2.2.Final.jar:3.2.2.Final]
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:625)
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:451)
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:525)
... 9 more

请求的页面加载似乎没有问题,因此除了日志中的异常之外,我没有注意到任何中断。有什么想法吗?

最佳答案

我遇到了类似的问题,感谢 this response 的想法,我先进一点吧。我要揭露我的案子。

我正在使用 Java (Java 7) (javax.ws.rs) 创建 REST API 并将其部署在 JBoss 服务器 (8.x) 上。

我的 Api 响应这些路径:

  • /myapi/a
  • /myapi/a?filer=myfilter

所以我这样编码:

private static final String FILTER = "filter";

@GET
@Path("/a")
@Produces(MediaType.APPLICATION_JSON)
public Object
foo(@Context UriInfo requestInfo) {
LOG.info("Http request: GET /myapi/a");
if (requestParameters.getQueryParameters().containsKey(FILTER)) {
return foo(requestInfo.getQueryParameters().get(FILTER));
}
// no params
return ...
}


public Object foo(List<String> filter) {
LOG.info(" > Requested filter");
return ...;
}

但是我有时从服务器(不是我的代码)收到此异常UT005023:对... sessionState的异常处理请求:org.jboss.resteasy.spi.UnhandledException:响应已提交,无法处理由java.io.IOException引起的异常:管道损坏

在调查它时,我发现了一些非常有趣的东西:它只能从 Safari 浏览器重现它,而不能从 Chrome 浏览器重现它。所以呢?重点是 Safari 具有 Chrome 所没有的功能:当 Safari 自动完成请求时,它会发送请求。在按下回车按钮之前,Chrome 不会发送请求。这很重要,因为只有在以下情况下才会出现错误:

  1. 使用 Safari 自动完成功能的请求至/a?filter=f
  2. 向/a 请求(按 Enter 键)

此时,我不知道原因(它与http header 相关)=>作为stephen-c,问题是你正在尝试做一些需要更改的事情HTTP 响应 header ...发送 header 后

[已编辑]

我几乎可以肯定(99%)我们无法处理该异常。基本上,它表示您丢失了一个请求,并且作为警告,服务器告诉您您不会处理它。

还有另一种方法可以重新创建异常:尝试将手指放在 F5CMD-R 上。您将创建数百个请求...但是您将丢失其中一些请求(与池线程、工作线程等相关),并且您将看到这些丢失请求的异常。 p>

我决定不再担心这个了。

关于wildfly-8 - 是什么导致了 WildFly/Undertow 管道破裂错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061606/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com