Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Uploading large files error to wildfly

I try to upload large files(400mb+) to wildfly 8.1 and i get an IOException but i dont encounter any exception with the same conditions when using jboss 7 server:

Exception:

Blocking request failed HttpServerExchange{ POST /ehub/contentstore/categories/maincategory/file/create}: 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:1145) [rt.jar:1.7.0_51]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]     at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51] Caused by: java.io.IOException: Broken pipe     at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_51]     at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1.7.0_51]     at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) [rt.jar:1.7.0_51]     at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_51]     at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487) [rt.jar:1.7.0_51]     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.processWrite(HttpResponseConduit.java:212)     at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpResponseConduit.java:629)     at io.undertow.conduits.FinishableStreamSinkConduit.flush(FinishableStreamSinkConduit.java:83)     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) 

I increased the max-post-size but it didnt work.

standalone.xml :

<subsystem xmlns="urn:jboss:domain:undertow:1.1">         <buffer-cache name="default"/>         <server name="default-server">             <http-listener name="default" socket-binding="http" max-post-size="974247881"/>             <host name="default-host" alias="localhost">                 <location name="/" handler="welcome-content"/>                 <filter-ref name="server-header"/>                 <filter-ref name="x-powered-by-header"/>             </host>         </server>         <servlet-container name="default">             <jsp-config/>         </servlet-container>         <handlers>             <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>         </handlers>         <filters>             <response-header name="server-header" header-name="Server" header-value="WildFly/8"/>             <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>         </filters> </subsystem> 
like image 635
semudu Avatar asked Sep 19 '14 07:09

semudu


People also ask

What is Max post size in JBoss?

The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than or equal to 0. If not specified, this attribute is set to 2097152 (2 megabytes).

Can I use WildFly in production?

WildFly was formerly known as the JBoss Application Server, or JBoss AS. It is an open-source application server released under the GNU Lesser General Public License (LGPL), which means it is free to use and distribute. It is managed by Red Hat. We can use WildFly for both development and production purposes.

What is standalone XML in WildFly?

standalone. xml file contains all the information regarding modules used by the JBOSS or wildfly.

Where is WildFly configuration file?

The file is in the wildfly/standalone/configuration folder.


2 Answers

I have found solution for this. I had this same issue and I solved it. It may help others.

For allowing more http request header size you need to change standalone.xml file of jboss or wildfly.

Add max-header-size attribute to default server and restart the server it will work Standalone.conf

<subsystem xmlns="urn:jboss:domain:undertow:1.1">         <buffer-cache name="default"/>         <server name="default-server">             <http-listener name="default" socket-binding="http" max-header-size="974247881"/>             <host name="default-host" alias="localhost">                 <location name="/" handler="welcome-content"/>                 <filter-ref name="server-header"/>                 <filter-ref name="x-powered-by-header"/>             </host>         </server> ... </subsystem> 
like image 55
kirti Avatar answered Sep 28 '22 20:09

kirti


It is not in "standalone.conf" file . It is "standalone.xml" file which is located in folder "standalone/configuration". change max-post-size :

<http-listener name="default" socket-binding="http" redirect-socket="https" max-post-size="104857600"/>             <host name="default-host" alias="localhost"> 
like image 33
Ritesh Shah Avatar answered Sep 28 '22 18:09

Ritesh Shah