This looks really odd. It looks like the client request is expecting
there to be a request body, however the server request thinks the
request is finished and there is no request body available. Is it
possible an earlier handler is reading the request body so the proxy
handler can't access it?
Stuart
> ______________________________
On Sat, Sep 16, 2017 at 8:37 PM, Steve Hu <stevehu@gmail.com> wrote:
> Hi,
>
> I am trying to build a RESTful reverse proxy in order to wrap up APIs built
> with other Java frameworks or other languages. The codebase is copied from
> the reverse proxy example and I have a tutorial to document the steps to
> reproduce the error. I am just wondering if there are anything I missed or
> this is a bug.
>
> Thanks,
>
> Steve
>
> Here the tutorial
>
> https://networknt.github.io/light-proxy/tutorial/
>
> And here is the error
>
> 14:04:03.357 [XNIO-1 I/O-1] ERROR io.undertow.proxy handleFailure -
> UT005028: Proxy request to /v1/postData failed
> io.undertow.server.TruncatedResponseException: null
> at
> io.undertow.client.http.HttpRequestConduit. truncateWrites( HttpRequestConduit.java:711)
> at
> io.undertow.conduits.AbstractFixedLengthStreamSinkC onduit.terminateWrites( AbstractFixedLengthStreamSinkC onduit.java:256)
> at
> org.xnio.conduits.ConduitStreamSinkChannel. shutdownWrites( ConduitStreamSinkChannel.java: 178)
> at
> io.undertow.channels.DetachableStreamSinkChannel. shutdownWrites( DetachableStreamSinkChannel. java:79)
> at
> io.undertow.server.handlers.proxy.ProxyHandler$ HTTPTrailerChannelListener. handleEvent(ProxyHandler.java: 736)
> at
> io.undertow.server.handlers.proxy.ProxyHandler$ ProxyAction$1.completed( ProxyHandler.java:628)
> at
> io.undertow.server.handlers.proxy.ProxyHandler$ ProxyAction$1.completed( ProxyHandler.java:543)
> at
> io.undertow.client.http.HttpClientExchange. invokeReadReadyCallback( HttpClientExchange.java:212)
> at
> io.undertow.client.http.HttpClientConnection. initiateRequest( HttpClientConnection.java:418)
> at
> io.undertow.client.http.HttpClientConnection. sendRequest( HttpClientConnection.java:350)
> at
> io.undertow.server.handlers.proxy.ProxyHandler$ ProxyAction.run(ProxyHandler. java:543)
> at io.undertow.util.SameThreadExecutor.execute( SameThreadExecutor.java:35)
> at
> io.undertow.server.HttpServerExchange.dispatch( HttpServerExchange.java:797)
> at
> io.undertow.server.handlers.proxy.ProxyHandler$ ProxyClientHandler.completed( ProxyHandler.java:298)
> at
> io.undertow.server.handlers.proxy.ProxyHandler$ ProxyClientHandler.completed( ProxyHandler.java:272)
> at
> io.undertow.server.handlers.proxy.ProxyConnectionPool. connectionReady( ProxyConnectionPool.java:338)
> at
> io.undertow.server.handlers.proxy.ProxyConnectionPool. access$900( ProxyConnectionPool.java:61)
> at
> io.undertow.server.handlers.proxy.ProxyConnectionPool$2. completed(ProxyConnectionPool. java:286)
> at
> io.undertow.server.handlers.proxy.ProxyConnectionPool$2. completed(ProxyConnectionPool. java:273)
> at
> io.undertow.client.http.HttpClientProvider. handleConnected( HttpClientProvider.java:156)
> at
> io.undertow.client.http.HttpClientProvider.access$000( HttpClientProvider.java:51)
> at
> io.undertow.client.http.HttpClientProvider$2. handleEvent( HttpClientProvider.java:127)
> at
> io.undertow.client.http.HttpClientProvider$2. handleEvent( HttpClientProvider.java:124)
> at org.xnio.ChannelListeners.invokeChannelListener( ChannelListeners.java:92)
> at
> org.xnio.nio.WorkerThread$ConnectHandle.handleReady( WorkerThread.java:326)
> at org.xnio.nio.WorkerThread.run(WorkerThread.java:561)
> 14:05:03.462 [XNIO-1 I/O-1] ERROR io.undertow.proxy handleFailure -
> UT005028: Proxy request to /v1/postData failed
> java.io.IOException: UT001000: Connection closed
> at
> io.undertow.client.http.HttpClientConnection$ ClientReadListener. handleEvent( HttpClientConnection.java:573)
> at
> io.undertow.client.http.HttpClientConnection$ ClientReadListener. handleEvent( HttpClientConnection.java:511)
> at org.xnio.ChannelListeners.invokeChannelListener( ChannelListeners.java:92)
> at
> org.xnio.conduits.ReadReadyHandler$ ChannelListenerHandler. readReady(ReadReadyHandler. java:66)
> at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit. java:88)
> at org.xnio.nio.WorkerThread.run(WorkerThread.java:561)
>
>
>
_________________
> undertow-dev mailing list
> undertow-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/undertow-dev