You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Thiago Souza <tc...@gmail.com> on 2010/07/30 03:05:02 UTC

Help using JoSQL

Hi,

           I'm trying to use JoSQL. I followed the instructions at
http://camel.apache.org/sql.html. Here is my current test context:


	<c:route>
		<c:from uri="file://./input" />
		<c:unmarshal ref="test" /> <!-- json -->
		<c:setBody>
			<c:sql>select num from java.util.Map</c:sql>
		</c:setBody>
		<c:to uri="log:test?level=INFO" />
	</c:route>


       But I'm always getting the following exception:


java.lang.IllegalArgumentException: No script engine could be created for:
sql
        at
org.apache.camel.builder.script.ScriptBuilder.createScriptEngine(ScriptBuilder.java:473)
        at
org.apache.camel.builder.script.ScriptBuilder.checkInitialised(ScriptBuilder.java:451)
        at
org.apache.camel.builder.script.ScriptBuilder.getEngine(ScriptBuilder.java:383)
        at
org.apache.camel.builder.script.ScriptBuilder.getScriptContext(ScriptBuilder.java:426)
        at
org.apache.camel.builder.script.ScriptBuilder.evaluateScript(ScriptBuilder.java:501)
        at
org.apache.camel.builder.script.ScriptBuilder.evaluate(ScriptBuilder.java:77)
        at
org.apache.camel.builder.script.ScriptBuilder.evaluate(ScriptBuilder.java:81)
        at
org.apache.camel.processor.SetBodyProcessor.process(SetBodyProcessor.java:36)
        at
org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290)
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202)
        at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
        at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
        at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:313)
        at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:144)
        at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:110)
        at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)


Any clue anyone?

Regards,
Thiago Souza

-- 
View this message in context: http://camel.465427.n5.nabble.com/Help-using-JoSQL-tp2259071p2259071.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Help using JoSQL

Posted by Thiago Souza <tc...@gmail.com>.
Great, thanks!
-- 
View this message in context: http://camel.465427.n5.nabble.com/Help-using-JoSQL-tp2259071p2259103.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Help using JoSQL

Posted by Willem Jiang <wi...@gmail.com>.
OK, it's look like JoSQL only works in DSL now, you have to use the 
SqlBuilder to define SQL expression in the RouteBulder.

I just create a JIRA[1] for it and will commit a quick fix today.

[1]https://issues.apache.org/activemq/browse/CAMEL-3014

Willem
----------------------------------
Apache Camel, Apache CXF committer
Open Source Integration http://www.fusesource.com
Blog http://willemjiang.blogspot.com
Tiwtter http://twitter.com/willemjiang

Thiago Souza wrote:
> I doubled checked, it's there. I can assure that both
> "org.apache.camel.builder.sql.SqlBuilder" and "org.josql.Query" are visible
> from the current classpath.
> 
> What I don't understand is how the "org.apache.camel.builder.sql.SqlBuilder"
> is discovered. I don't see any metadata inside META-INF that would make it
> discoverable.
> 
> BTW, i'm using camel 2.4.0.
> 
> Regards,
> Thiago Souza


Re: Help using JoSQL

Posted by Thiago Souza <tc...@gmail.com>.
I doubled checked, it's there. I can assure that both
"org.apache.camel.builder.sql.SqlBuilder" and "org.josql.Query" are visible
from the current classpath.

What I don't understand is how the "org.apache.camel.builder.sql.SqlBuilder"
is discovered. I don't see any metadata inside META-INF that would make it
discoverable.

BTW, i'm using camel 2.4.0.

Regards,
Thiago Souza
-- 
View this message in context: http://camel.465427.n5.nabble.com/Help-using-JoSQL-tp2259071p2259085.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Help using JoSQL

Posted by Willem Jiang <wi...@gmail.com>.
Hi,

It looks like you didn't put the camel-josql jar into your class path.

Willem
----------------------------------
Apache Camel, Apache CXF committer
Open Source Integration http://www.fusesource.com
Blog http://willemjiang.blogspot.com
Tiwtter http://twitter.com/willemjiang

Thiago Souza wrote:
> Hi,
> 
>            I'm trying to use JoSQL. I followed the instructions at
> http://camel.apache.org/sql.html. Here is my current test context:
> 
> 
> 	<c:route>
> 		<c:from uri="file://./input" />
> 		<c:unmarshal ref="test" /> <!-- json -->
> 		<c:setBody>
> 			<c:sql>select num from java.util.Map</c:sql>
> 		</c:setBody>
> 		<c:to uri="log:test?level=INFO" />
> 	</c:route>
> 
> 
>        But I'm always getting the following exception:
> 
> 
> java.lang.IllegalArgumentException: No script engine could be created for:
> sql
>         at
> org.apache.camel.builder.script.ScriptBuilder.createScriptEngine(ScriptBuilder.java:473)
>         at
> org.apache.camel.builder.script.ScriptBuilder.checkInitialised(ScriptBuilder.java:451)
>         at
> org.apache.camel.builder.script.ScriptBuilder.getEngine(ScriptBuilder.java:383)
>         at
> org.apache.camel.builder.script.ScriptBuilder.getScriptContext(ScriptBuilder.java:426)
>         at
> org.apache.camel.builder.script.ScriptBuilder.evaluateScript(ScriptBuilder.java:501)
>         at
> org.apache.camel.builder.script.ScriptBuilder.evaluate(ScriptBuilder.java:77)
>         at
> org.apache.camel.builder.script.ScriptBuilder.evaluate(ScriptBuilder.java:81)
>         at
> org.apache.camel.processor.SetBodyProcessor.process(SetBodyProcessor.java:36)
>         at
> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>         at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290)
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202)
>         at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
>         at
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:313)
>         at
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:144)
>         at
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:110)
>         at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
>         at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>         at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:619)
> 
> 
> Any clue anyone?
> 
> Regards,
> Thiago Souza
>