[
https://issues.apache.org/jira/browse/CAMEL-7638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14547771#comment-14547771
]
Rasmus Larsen edited comment on CAMEL-7638 at 5/18/15 9:36 AM:
---------------------------------------------------------------
I tried to use disableStream on the consumer:
{noformat}
<from
uri="jetty:http://0.0.0.0:{{jetty.port}}/dawa?matchOnUriPrefix=true&continuationTimeout=3600000&disableStreamCache=true"
/>
<to
uri="jetty:{{real-endpoint-base-url}}?bridgeEndpoint=true&throwExceptionOnFailure=false&httpClient.timeout=3600000"
/>
{noformat}
But I am getting the same error:
{noformat}
org.apache.camel.CamelExchangeException: JettyClient failed cause by: Java heap
space. Exchange[Message: [Body is null]]. Caused by:
[java.lang.OutOfMemoryError - Java heap space]
at
org.apache.camel.component.jetty.JettyContentExchange.doTaskCompleted(JettyContentExchange.java:223)[237:org.apache.camel.camel-jetty:2.14.1]
at
org.apache.camel.component.jetty.JettyContentExchange.onException(JettyContentExchange.java:143)[237:org.apache.camel.camel-jetty:2.14.1]
at
org.eclipse.jetty.client.HttpExchange$Listener.onException(HttpExchange.java:1108)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.AsyncHttpConnection.handle(AsyncHttpConnection.java:168)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at java.lang.Thread.run(Thread.java:744)[:1.7.0_51]
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2271)[:1.7.0_51]
at
java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)[:1.7.0_51]
at
java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)[:1.7.0_51]
at
java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)[:1.7.0_51]
at
org.eclipse.jetty.io.AbstractBuffer.writeTo(AbstractBuffer.java:689)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.ContentExchange.onResponseContent(ContentExchange.java:105)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.HttpExchange$Listener.onResponseContent(HttpExchange.java:1177)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.AbstractHttpConnection$Handler.content(AbstractHttpConnection.java:332)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:957)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.AsyncHttpConnection.handle(AsyncHttpConnection.java:135)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
... 5 more
{noformat}
If I try to set disableStreamCache=true on the producer, the proxy does not
work. It appears to strip the url.
If for example, I try to reach http://example.com/somepart, then I get content
from http://example.com
was (Author: rlarsen5):
I tried to use disableStream on the consumer:
<from
uri="jetty:http://0.0.0.0:{{jetty.port}}/dawa?matchOnUriPrefix=true&continuationTimeout=3600000&disableStreamCache=true"
/>
<to
uri="jetty:{{real-endpoint-base-url}}?bridgeEndpoint=true&throwExceptionOnFailure=false&httpClient.timeout=3600000"
/>
But I am getting the same error:
org.apache.camel.CamelExchangeException: JettyClient failed cause by: Java heap
space. Exchange[Message: [Body is null]]. Caused by:
[java.lang.OutOfMemoryError - Java heap space]
at
org.apache.camel.component.jetty.JettyContentExchange.doTaskCompleted(JettyContentExchange.java:223)[237:org.apache.camel.camel-jetty:2.14.1]
at
org.apache.camel.component.jetty.JettyContentExchange.onException(JettyContentExchange.java:143)[237:org.apache.camel.camel-jetty:2.14.1]
at
org.eclipse.jetty.client.HttpExchange$Listener.onException(HttpExchange.java:1108)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.AsyncHttpConnection.handle(AsyncHttpConnection.java:168)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at java.lang.Thread.run(Thread.java:744)[:1.7.0_51]
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2271)[:1.7.0_51]
at
java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)[:1.7.0_51]
at
java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)[:1.7.0_51]
at
java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)[:1.7.0_51]
at
org.eclipse.jetty.io.AbstractBuffer.writeTo(AbstractBuffer.java:689)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.ContentExchange.onResponseContent(ContentExchange.java:105)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.HttpExchange$Listener.onResponseContent(HttpExchange.java:1177)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.AbstractHttpConnection$Handler.content(AbstractHttpConnection.java:332)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:957)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.client.AsyncHttpConnection.handle(AsyncHttpConnection.java:135)[73:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
... 5 more
If I try to set disableStreamCache=true on the producer, the proxy does not
work. It appears to strip the url.
If for example, I try to reach http://example.com/somepart, then I get content
from http://example.com
> Use response input stream directly in http producer
> ---------------------------------------------------
>
> Key: CAMEL-7638
> URL: https://issues.apache.org/jira/browse/CAMEL-7638
> Project: Camel
> Issue Type: Improvement
> Reporter: Willem Jiang
> Assignee: Willem Jiang
>
> It could save us lots of the memory and time if the response is a big and
> chunked message.
> Here are some discussion in the mailing list about it.
> http://camel.465427.n5.nabble.com/Stream-only-reverse-proxy-with-minimal-memory-footprint-tp5754424.html
>
> http://camel.465427.n5.nabble.com/Chunking-issue-with-http-producer-td5735075.html
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)