【问题标题】:Wildfly 8.2 : org.xnio.channels.FixedLengthUnderflowException: 8088 bytes remainingWildfly 8.2:org.xnio.channels.FixedLengthUnderflowException:剩余 8088 字节
【发布时间】:2015-10-13 12:50:56
【问题描述】:

我正在从 jboss 6 迁移到 jboss 8.2。早些时候它可以正常工作,但现在当我尝试下载文件时,我得到以下异常

Caused by: org.xnio.channels.FixedLengthUnderflowException: 8088 bytes remaining
    at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.terminateWrites(AbstractFixedLengthStreamSinkConduit.java:255) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
    at org.xnio.conduits.Conduits.writeFinalBasic(Conduits.java:134)
    at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.writeFinal(AbstractFixedLengthStreamSinkConduit.java:175) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
    at org.xnio.conduits.ConduitStreamSinkChannel.writeFinal(ConduitStreamSinkChannel.java:104)
    at io.undertow.channels.DetachableStreamSinkChannel.writeFinal(DetachableStreamSinkChannel.java:194) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.server.HttpServerExchange$WriteDispatchChannel.writeFinal(HttpServerExchange.java:1829) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.spec.ServletOutputStreamImpl.writeBufferBlocking(ServletOutputStreamImpl.java:565) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:600) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.spec.ServletOutputStreamImpl.updateWritten(ServletOutputStreamImpl.java:364) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:223) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at java.io.BufferedOutputStream.flushBuffer(Unknown Source) [rt.jar:1.7.0_71]
    at java.io.BufferedOutputStream.write(Unknown Source) [rt.jar:1.7.0_71]

代码sn-p

ContentType = "application/octet-stream";
BufInput = new BufferedInputStream(new FileInputStream(File), 5000);
Response.reset();
Response.setIntHeader("Expires", 0);
Response.setContentType(contentType);
Response.setHeader("Content-Disposition", header);
Response.setIntHeader("Content-length", (int) File.length());
Response.setContentLength((int)File.length());
OutStream = new BufferedOutputStream(Response.getOutputStream(), 5000);
int Byte;
while ((Byte = BufInput.read()) != -1)
    OutStream.write(Byte);
OutStream.flush();
OutStream.close();
BufInput.close();

【问题讨论】:

    标签: jboss jboss7.x wildfly wildfly-8


    【解决方案1】:

    这已在 8.2.1 和 9.0.x 中修复

    所以你的解决方案是升级。

    【讨论】:

    • 重启服务器(8.2.1)后,第一次点击下载文件时出现“General Error.General input/output error.”。如果我再次点击下载然后它工作正常。
    • 当我删除 Response.setIntHeader("Content-length", (int) File.length()); Response.setContentLength((int)File.length());它在 8.2.0 和 8.2.1 上都可以正常工作
    猜你喜欢
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 2023-03-09
    • 2015-01-28
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多