Hi

Yeah this is a bug. I have logged a ticket
https://issues.apache.org/jira/browse/CAMEL-6604

On Thu, Aug 1, 2013 at 3:25 AM, ramrubio <[email protected]> wrote:
> Attempting to implement a proxy service to route requests dynamically using
> DynamicRouter pattern suggested by
> http://camel.apache.org/dynamic-router.html.
>
> I'm unsuccessful though in getting streamcaching to work.  I've enabled
> streamcaching on the CamelContext but when the proxysvc forwards the POST
> request to my endpoint the body is always empty.
>
> <camelContext id="camel" streamCache="true"
> xmlns="http://camel.apache.org/schema/spring";>
>     <routeBuilder ref="CamelRouteBeanId"/>
> </camelContext>
>
> Below is my code that perform the slip functionality.
>
> public void configure() throws Exception {
>
>         Processor processor = new MyProcessor();
>
>         this.from("servlet:///?matchOnUriPrefix=true")
>                 .removeHeader(Exchange.HTTP_PATH)
>                 .dynamicRouter(method(CamelRoute.class, "slip"));
> }
>
> public static String slip(String body_p, @Properties Map<String, Object>
> propertiesMap_p,
>                 @Headers Map<String, Object>headersMap_p) {
>
>         String serviceEndPoint = null;
>         String publicUri = (String)headersMap_p.get(Exchange.HTTP_URI);
>         //byte []bodyByteArray = body_p.getBytes();
>         if(publicUri != null)
>         {
>                 // get the state from the exchange properties and keep track 
> how many
> times
>                 // we have been invoked
>                 int invoked = 0;
>                 Object current = propertiesMap_p.get("invoked");
>                 if (current != null) {
>                     invoked = Integer.valueOf(current.toString());
>                 }
>                 invoked++;
>                 // and store the state back on the properties
>                 propertiesMap_p.put("invoked", invoked);
>
>                 if(invoked == 1)
>                 {
>                         serviceEndPoint = CamelRoute.constructUri();
>                 }
>         }
>
>         return serviceEndPoint;
>     }
>
>     private static String constructUri()
>     {
>         String serviceEndPoint = null;
>         String server = "http://localhost:8080";;
>         serviceEndPoint = server
>                 +"/sample.restsvc/rest/testresource"
>                 +"?bridgeEndpoint=true&throwExceptionOnFailure=false";
>
>         return serviceEndPoint;
>     }
>
> The Request is forwarded to my http end point but the body is always empty.
>
> Can someone provide information as to whether streamCache works for http end
> point?  If i add a processor to route that sets body as string in request
> this code works but this work around loads the entire body to memory which
> causes issues for large requests.
>
> /Ramon
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/stream-caching-to-HTTP-end-point-tp5736608.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [email protected]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to