Christoph (et all), Thanks for the reply... I apologize for not being clear.. I know that is important for effective use of everyones time. Here is the use case.. User http posts a form to servlet (camel servlet.... I have this working via the camel tomcat example as starting point.. )
Servlet validates post, parses parameters, executes query, passes query results to velocity to generate html, returns response It is the later that I broke down into junit tests to ensure I understand the syntax and that each step works.. So.. what I have is.. execute query .. I have this working via a junit that basically has a route of . from("direct:start") .to("mybatis:selectMyList?statementType=SelectList") .log("Tapped message body is ${body}") .to("mock:result"); and then after the template.sendBody() .. the junit does a List<Account> list = mock.getReceivedExchanges().get(0).getIn().getBody(List.class); and iterates over the returned collection .. so I know myBatis is working as designed. generate html from list.. I kind of have this working in a junit.. though I currently do not execute myBatis via a route.. I execute it as I always have.. I execute this .. (mainly because I am struggling to link the routes.. ) myList = mySqlSession.selectList("selectMyList"); // pojo style myBaits. template.requestBody("direct:start", myList); my route looks like.. from("direct:start") // start from camel itself .. no input queue .to("velocity:myVelocityTemplate.vm") // run velocity against input message .to("file://target/subfolder") // write the output of the velocity to a file. ; where I am trying to get to is something like this.. route looks like... from("direct:start") // start from camel itself .. no input queue .to("mybatis:selectMyList?statementType=SelectList") .log("Tapped message body is ${body}") .to("velocity:myVelocityTemplate.vm") // run velocity against input message .to("file://target/subfolder") // write the output of the velocity to a file. ; and eventually .. burry all that into a config.. using the example tomcat servlet as my starting point.. So..finally.. to provide response to your questions.. > A: Are you executing this example as unit test? If so, why don't you apply > the ProducerTemplate and simply pass the list when executing the sendBody() > operation? I tried following the Camel In Action book's logic of an anonymous inner class "new Processor()..", but that seems to have moved to an interface now. I will look into the ProducerTemplate... > B: We'll, ... you probably need to send it somewhere via the to() statement, > e.g. to the jetty component or any other I need to send to the servlet output stream as the use case is post form.. return formatted response.. I was just going to tackle this problem in a plain old servlet, but thought I would use this as an opportunity to learn camel's EIP capabilities. ;) Kind Regards, Michael L. Conneen Information Integrators, Inc. http://www.infointegrators.com PGP Key: http://mconneen.infointegrators.net/mconneen.asc On Jun 3, 2013, at 02:55 , Christoph Emmersberger wrote: > Hi Michael, > > let me try to ask some questions: > > A: Are you executing this example as unit test? If so, why don't you apply > the ProducerTemplate and simply pass the list when executing the sendBody() > operation? > B: We'll, ... you probably need to send it somewhere via the to() statement, > e.g. to the jetty component or any other. > > Cheers, > > - Christoph > > On Jun 2, 2013, at 11:01 PM, Conneen Michael wrote: > >> Folks, >> >> I suspect I am a stones throw away from the "ah ha" moment.. but I cannot >> seem to get there.. I am a newbie so I purchased and downloaded the Camel >> In Action ebook... Great overview and has gotten me this far.. I do have >> "some" of the individual pieces working.. I just cannot figure out how to >> build the route correctly. >> >> I have searched the camel user forum for "mybatis selectlist velocity" ... >> but have yet to find what I am looking for... >> >> Here is what I want to do.. >> 1. Run camel using a servlet endpoint as the starting point. >> From the tomcat example, got this working and mostly understand the >> spring configuration... >> >> 2. Parse off a parameter and pass into a myBatis select list. .. >> I have worked with myBatis a lot from POJOs... so I have both POJOs.. >> and I think a direct junit test of the mybatis route.. >> >> 3. Route the query results to velocity to produce an html table. ... >> I have junit working where I pass a list via >> template.requestBody("direct:in", list); >> >> 4. Return the results of the velocity template as the html response >> Have not tackled this yet. Trying to get routes 2 and 3 above first.. >> >> Things I cannot figure out.. >> A. via "to" routing syntax, how do I provide the appropriate list >> collection to velocity ? I know the raw syntax is >> List<?> list = >> mock.getReceivedExchanges().get(0).getIn().getBody(List.class); >> but velocity is expecting the collection as part of the body.. >> >> B. how do I pull the velocity results out and concatenate with my desired >> html output stream? >> >> Any pointers to my "ah ha" moment much appreciated.. >