Christoph (et all) Thanks much.. OK.. I did get further.. I had a few errors..
1. My SQLMapConfig.xml file was not there.. as when I use POJOs I usually name it differently and then use code to look it up. I did see the reference to "If the file is located in another location, you will need to configure the configurationUri option on the MyBatisComponent component." on the http://camel.apache.org/mybatis.html .. so for now.. I simply named it back.. 2. My velocity template was not properly referencing the returned collection. Fixed that and poof... So.. my route of .. from("direct:start") // start from camel itself .. no input queue .to("mybatis:selectMyList?statementType=SelectList") // select list of bulletin board messages. .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. .to("mock:result"); now works as desired.. Last hurdle .. get this into the servlet output stream.. My travels thus far have taught me a bit more as to how to read and interpret http://camel.apache.org/servlet.html I am inching closer to my "ah ha" moment.. 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 13:17 , Christoph Emmersberger wrote: > Hi Michael, > > any luck with taking a look at the producer template. > > As far as I can observe your routes, everything looks OK, except that it is > still only partial and not bound together. > > You can always execute myBatis from a Processor within your route, I mean > trigger your existing code base from a Processor that does the job. This > might ease your ramp up with the myBatis component config an eventually > provide you a bit more freedom. Nevertheless you won't utilize the entire > Camel feature set. > > What I've seen in your last route, is that you might want to take a look at > the section "Using onConsume" in http://camel.apache.org/mybatis.html > > Kind regards, > > - Christoph > > On Jun 3, 2013, at 2:09 PM, Conneen Michael wrote: > >> 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.. >>> >> >