testing xslt camel endpoint
valdar Jul 30, 2010 3:37 AMIf I deploy this camel route:
<camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="timer://myTimer?fixedRate=true&period=5000"></from> <setBody> <simple><person firstName='Anderson' lastName='Nielson' /></simple> </setBody> <to uri="xslt:attributeToElementValue.xsl"></to> <bean ref="authorization" method="log"></bean> </route> </camelContext>
in a bundle in FUSE-ESB 4.2.0 it works fine.
If I test it with camel-test (so without deploying it in FUSE) it throws this exception:
SEVERE: Failed delivery for exchangeId: 254a6175-86e3-4a3e-917f-8d61d287d4b8. Exhausted after delivery attempt: 1 caught: org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson' /> org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> at org.apache.camel.builder.xml.XsltBuilder.getSource(XsltBuilder.java:291) at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:79) at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95) at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:106) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:103) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:189) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:103) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:87) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:102) at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:49) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Jul 30, 2010 9:20:23 AM org.apache.camel.processor.Logger log SEVERE: Error processing exchange. Exchange[Message: [Body is null]]. Caused by: [org.apache.camel.ExpectedBodyTypeException - Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person>] org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> at org.apache.camel.builder.xml.XsltBuilder.getSource(XsltBuilder.java:291) at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:79) at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95) at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:106) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:103) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:189) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:103) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:87) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:102) at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:49) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Jul 30, 2010 9:20:28 AM org.apache.camel.processor.Logger log SEVERE: Failed delivery for exchangeId: 6f834d18-9eef-4c6e-a120-8c1ed58fa84e. Exhausted after delivery attempt: 1 caught: org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> at org.apache.camel.builder.xml.XsltBuilder.getSource(XsltBuilder.java:291) at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:79) at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95) at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:106) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:103) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:189) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:103) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:87) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:102) at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:49) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Jul 30, 2010 9:20:28 AM org.apache.camel.processor.Logger log SEVERE: Error processing exchange. Exchange[Message: [Body is null]]. Caused by: [org.apache.camel.ExpectedBodyTypeException - Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person>] org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> at org.apache.camel.builder.xml.XsltBuilder.getSource(XsltBuilder.java:291) at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:79) at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95) at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:106) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:103) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:189) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:103) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:87) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:102) at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:49) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Jul 30, 2010 9:20:33 AM org.apache.camel.processor.Logger log SEVERE: Failed delivery for exchangeId: 3c35bec0-afbc-4457-841d-b0185aded8aa. Exhausted after delivery attempt: 1 caught: org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> at org.apache.camel.builder.xml.XsltBuilder.getSource(XsltBuilder.java:291) at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:79) at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95) at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:106) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:103) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:189) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:103) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:87) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:102) at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:49) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Jul 30, 2010 9:20:33 AM org.apache.camel.processor.Logger log SEVERE: Error processing exchange. Exchange[Message: [Body is null]]. Caused by: [org.apache.camel.ExpectedBodyTypeException - Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person>] org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: <person firstName='Anderson' lastName='Nielson'></person> at org.apache.camel.builder.xml.XsltBuilder.getSource(XsltBuilder.java:291) at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:79) at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95) at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:106) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:103) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:189) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:103) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:87) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:102) at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:49) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462)
This problem is present only with xslt or xpath endpoint, others endpoints works in testing environment also.
valdar@calliope:~$ java -version java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)
pom file attached.
-
pom.xml 6.7 KB