Hi Did you get further with this?
Also I wonder if you run this inside some container such as wildfly? Also the xml library that is shipped in the JDK is a "bit outdated and dodgy" so people often have better experience with using a saxon or something. You can add camel-saxon to the classpath which adds saxon. In your bean you can also try to use just Object as type and print the value and what class it is to see. Or use a debugger and set a breakpoint. On Fri, Jul 24, 2015 at 3:53 PM, Markus Eisele <[email protected]> wrote: > Hi, > > here's the complete Stacktrace. > > @Claus: Agree. Sort of felt natural for me. Really surprise to see > this exception. > > Cheers, > M > > > ---------------------------------------------------------------------------------------------------------------------------------------: > java.lang.ClassCastException: > com.sun.org.apache.xerces.internal.dom.TextImpl cannot be cast to > java.lang.String > at net.eisele.camel.jpa.order.OrderService$$Lambda$2/347614965.accept(Unknown > Source) > at > java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) > [rt.jar:1.8.0_45] > at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) > [rt.jar:1.8.0_45] > at net.eisele.camel.jpa.order.OrderService.handleOrder2(OrderService.java:80) > [classes:] > at > net.eisele.camel.jpa.order.OrderService$Proxy$_$$_WeldSubclass.handleOrder2(Unknown > Source) [classes:] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > [rt.jar:1.8.0_45] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > [rt.jar:1.8.0_45] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > [rt.jar:1.8.0_45] > at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_45] > at > org.jboss.weld.interceptor.proxy.SimpleInterceptionChain.interceptorChainCompleted(SimpleInterceptionChain.java:51) > [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05] > at > org.jboss.weld.interceptor.chain.AbstractInterceptionChain.finish(AbstractInterceptionChain.java:148) > [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05] > at > org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNextInterceptor(AbstractInterceptionChain.java:104) > [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05] > at > org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:43) > [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05] > at > org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:36) > [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05] > at > org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:51) > [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05] > at > net.eisele.camel.jpa.order.OrderService$Proxy$_$$_WeldSubclass.handleOrder2(Unknown > Source) [classes:] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > [rt.jar:1.8.0_45] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > [rt.jar:1.8.0_45] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > [rt.jar:1.8.0_45] > at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_45] > at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:171) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:111) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:652) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:580) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:227) > [camel-core-2.15.2.jar:2.15.2] > at org.apache.camel.processor.Splitter.process(Splitter.java:104) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:435) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:211) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:175) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174) > [camel-core-2.15.2.jar:2.15.2] > at > org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101) > [camel-core-2.15.2.jar:2.15.2] > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [rt.jar:1.8.0_45] > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > [rt.jar:1.8.0_45] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) > [rt.jar:1.8.0_45] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) > [rt.jar:1.8.0_45] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [rt.jar:1.8.0_45] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [rt.jar:1.8.0_45] > at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45] > > On 24 July 2015 at 15:27, Claus Ibsen <[email protected]> wrote: >> On Fri, Jul 24, 2015 at 2:11 PM, Jakub Korab >> <[email protected]> wrote: >>> Try setting the return type from the xpath expression: >>> >>> .setHeader("isbns", xpath("/order//isbn/text()", List.class)) >>> >> >> I wonder if a xpath with /text() works for a NodeList type, eg you >> will end up with a NodeList of 2 text values. Though it would feel >> natural to do so. >> >> >> >>> Jakub >>> >>> >>> On 24/07/15 13:05, Markus Eisele wrote: >>>> >>>> Hi, >>>> >>>> I was trying to convert a bunch of //text() Nodes selected via XPath >>>> into a List<String> and keep getting a ClassCastException. >>>> >>>> My input xml: >>>> >>>> <isbn>9781617290450</isbn> >>>> <isbn>9780132360280</isbn> >>>> >>>> The route >>>> >>>> .setHeader("isbns", xpath("/order//isbn/text()")) >>>> .bean(orderService, "handleOrder(${header[isbns]})") >>>> >>>> The Bean Method: >>>> >>>> public void handleOrder(List<String> orders) { >>>> >>>> orders.stream().forEach((o) -> { >>>> LOGGER.log(Level.INFO, "Order: {0}", o); >>>> }); >>>> >>>> >>>> Thanks for a hint. >>>> >>>> Cheers, >>>> Markus >>> >>> >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2nd edition: http://www.manning.com/ibsen2 -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2nd edition: http://www.manning.com/ibsen2
