Thank you for your reply, now I get no errors for CSV files.
cons by my filter does not work with the simple language, it puts all files received in the same directory <to uri="file:///c:/CAMEL/IN/AAE"/> below my configuration: <route errorHandlerRef="myDeadLetterChannel"> <from uri="activemq:queue:AX.IN"/> <choice> <when> <simple>${in.header.Action} == 'AAE'</simple> <to uri="file:///c:/CAMEL/IN/AAE"/> </when> <when> <simple>${in.header.Action} == 'PCA'</simple> <to uri="file:///c:/CAMEL/IN/PCA"/> </when> <otherwise> <to uri="activemq:queue:FilterError"/> </otherwise> </choice> </route> Thank you again for your help. Claus Ibsen-2 wrote: > > On Thu, Oct 8, 2009 at 11:22 AM, titexe <abdellatifbouch...@eurofins.com> > wrote: >> >> >> my incoming queue, receives messages of bytes type. >> >> the message content in bytes may be an XML or CSV or PDF file that I >> converted a file in the end. >> >> In the header of the message,there's on properties(Action), that allows >> me >> to place this file to the proper directory. >> > > Ah are you saying its a JMS property that has this value? If so you > can route without xpath using the header predicate instead > <xpath> $ action = 'AAE' </ xpath> > > Could then be > <simple>${header.action} == 'AAE' </header> > > Using the simple language to test this > http://camel.apache.org/simple.html > > > > >> From where I put <xpath> $ action = 'AAE' </ xpath> <to >> uri="file:///c:/CSV/AAE"/> >> >> Thank you for helping me find a good solution to my problem >> >> Thank you again for your help >> >> >> Claus Ibsen-2 wrote: >>> >>> Hi >>> >>> Why do you have mixed message on that JMS queue? >>> >>> Can you not have 1 queue for XML files >>> And another queue for CSV files? >>> >>> If not I suggest to use 3 routes >>> >>> 1st route will consume from that JMS queue and check the message >>> content if its XML or CSV. >>> And then route to either A or B depending on that >>> >>> 2nd route = A which is the XML route where you can use xpath >>> >>> 3rd route = B which is the CSV route where you use something else than >>> xpath. For example a java bean to check the action or what you would >>> like to do with the CSV file. >>> >>> >>> On Thu, Oct 8, 2009 at 10:48 AM, titexe >>> <abdellatifbouch...@eurofins.com> >>> wrote: >>>> >>>> Firstly, thank you for your reply, >>>> >>>> Action is a field that exists in the header of the message (Message >>>> proportions), normally xpath ($ action = 'AAE') should not parse the >>>> message >>>> body. >>>> >>>> if not, it is possible to use another command that allows me to filter >>>> the >>>> fields in the header of the message without parsing the message body? >>>> and >>>> it >>>> is possible to use it in my case <choice> of my route? >>>> >>>> Thank you in advance >>>> >>>> >>>> Claus Ibsen-2 wrote: >>>>> >>>>> Hi >>>>> >>>>> You are using XPath expressions >>>>> <xpath> $ action = 'AAE' </ xpath> >>>>> >>>>> And they *require* the payload to be XML. >>>>> So you cannot use XPath with CSV. >>>>> >>>>> >>>>> On Wed, Oct 7, 2009 at 10:59 AM, titexe >>>>> <abdellatifbouch...@eurofins.com> >>>>> wrote: >>>>>> >>>>>> For information >>>>>> >>>>>> Version Camel = Camel V1.6.1.2 >>>>>> Version Activemq = Fuse message broker 5.3.0.3 >>>>>> Version Java = V1.6.0_16 >>>>>> >>>>>> >>>>>> titexe wrote: >>>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> Here is the description of my route camel : I get a message type >>>>>>> Bytes >>>>>>> in >>>>>>> my queue, I transferred this message to another broker instance in >>>>>>> another >>>>>>> machine. >>>>>>> >>>>>>> was receiving this message I transformed this message to CSV or XML >>>>>>> file. >>>>>>> >>>>>>> my problem is that my route works very well for XML files and not >>>>>>> for >>>>>>> CSV >>>>>>> files. >>>>>>> >>>>>>> Here is my setup: >>>>>>> >>>>>>> <route errorHandlerRef="myDeadLetterChannel"> >>>>>>> <from uri="activemq:queue:IN"/> >>>>>>> <choice> >>>>>>> <when> >>>>>>> <xpath> $ action = 'AAE' </ xpath> >>>>>>> <t uri="file:///c:/IN/AAE/"/> >>>>>>> <setBody> >>>>>>> <simple> UPDATE SET CAMEL CamelDate = CURRENT_TIMESTAMP WHERE >>>>>>> message >>>>>>> = >>>>>>> '$ >>>>>>> (in.header.MessageId)' </ simple> >>>>>>> </ setBody> >>>>>>> <t uri="jdbc:testdb"/> >>>>>>> </ when> >>>>>>> <when> >>>>>>> <xpath> $ action = 'FAE' </ xpath> >>>>>>> <t uri="file:///c:/IN/FAE/"/> >>>>>>> <setBody> >>>>>>> <simple> UPDATE SET CAMEL CamelDate = CURRENT_TIMESTAMP WHERE >>>>>>> message >>>>>>> = >>>>>>> '$ >>>>>>> (in.header.MessageId)' </ simple> >>>>>>> </ setBody> >>>>>>> <t uri="jdbc:testdb"/> >>>>>>> </ when> >>>>>>> >>>>>>> <otherwise> >>>>>>> <t uri="activemq:queue:FilterError"/> >>>>>>> </ otherwise> >>>>>>> >>>>>>> </ choice> >>>>>>> </ route> >>>>>>> >>>>>>> >>>>>>> Here is the error that I receive when the transformationfor CSV >>>>>>> file. >>>>>>> >>>>>>> >>>>>>> WARN EndpointMessageListener - Endpoint [ActiveMQ: tail: IN] >>>>>>> consumer >>>>>>> caught an exception while processing JMS message: >>>>>>> ActiveMQBytesMessage >>>>>>> CommandID = (10, responseRequired = false, messageId = ID: >>>>>>> DCFR-4099-1254861846625-3: 0:1:1:1, originalDestination = null, >>>>>>> originalTransactionId = null, >>>>>>> producerId = ID: DCFR-4099-1254861846625-2: 0:1:1, destination = >>>>>>> queue: >>>>>>> / / IN, transactionId = null, expiration = 0, timestamp = >>>>>>> 1254862039687, >>>>>>> arrived >>>>>>> l = 0, brokerInTime = 1254879861750, brokerOutTime = 1254879861765, >>>>>>> CorrelationId = null, ReplyTo = null, persistent = true, type = >>>>>>> null, >>>>>>> priority = 4 >>>>>>> , GroupID = null, groupSequence = 0, targetConsumerId = null, >>>>>>> compressed >>>>>>> = >>>>>>> false, userID = null, content = >>>>>>> org.apache.activemq.util.ByteSequence >>>>>>> @ >>>>>>> 6baf2 >>>>>>> 4 marshalledProperties = org.apache.activemq.util.ByteSequence @ >>>>>>> 1b7a553, >>>>>>> Datastructures = null, redeliveryCounter = 0, size = 2597, >>>>>>> properties >>>>>>> = >>>>>>> (Sourc >>>>>>> eEndpoint = null, org_apache_camel_file_name = EUANNA_PCA_20090901 >>>>>>> (50e71be4-B408-48b3-9048-4e68faf6cbd3). csv DestinationEndpoint = >>>>>>> null, >>>>>>> MessageId = (50e71be >>>>>>> 4-B408-48b3-9048-4e68faf6cbd3), Action = PCA PartnerCode = EUANNA, >>>>>>> SourceEndpointUser = null, RequestMessageId = null), >>>>>>> readOnlyProperties >>>>>>> = >>>>>>> true, readOnlyBo >>>>>>> dy = true, droppable = false) (ActiveMQBytesMessage = null bytesOut, >>>>>>> dataOut = null, @ DATAIN = java.io.DataInputStream 1d314cc) >>>>>>> org.apache.camel.RuntimeCamelException: >>>>>>> org.xml.sax.SAXParseException: >>>>>>> Content is not allowed in prolog. >>>>>>> at org.apache.camel.util.ObjectHelper.invokeMethod >>>>>>> (ObjectHelper.java: 567) >>>>>>> at >>>>>>> org.apache.camel.impl.converter.InstanceMethodTypeConverter.convertTo >>>>>>> (InstanceMethodTypeConverter.java: 57) >>>>>>> at >>>>>>> org.apache.camel.impl.converter.DefaultTypeConverter.doConvertTo >>>>>>> (DefaultTypeConverter.java: 119) >>>>>>> at >>>>>>> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo >>>>>>> (DefaultTypeConverter.java: 90) >>>>>>> at org.apache.camel.impl.MessageSupport.getBody >>>>>>> (MessageSupport.java: 79) >>>>>>> at org.apache.camel.impl.MessageSupport.getBody >>>>>>> (MessageSupport.java: 52) >>>>>>> at org.apache.camel.builder.xml.XPathBuilder.getDocument >>>>>>> (XPathBuilder.java: 536) >>>>>>> at org.apache.camel.builder.xml.XPathBuilder.evaluateAs >>>>>>> (XPathBuilder.java: 428) >>>>>>> at org.apache.camel.builder.xml.XPathBuilder.matches >>>>>>> (XPathBuilder.java: 106) >>>>>>> at org.apache.camel.builder.xml.XPathBuilder.matches >>>>>>> (XPathBuilder.java: 65) >>>>>>> at org.apache.camel.processor.ChoiceProcessor.process >>>>>>> (ChoiceProcessor.java: 47) >>>>>>> at >>>>>>> org.apache.camel.management.InstrumentationProcessor.process >>>>>>> (InstrumentationProcessor.java: 80) >>>>>>> >>>>>>> Thank you for helping me resolve this problem, >>>>>>> >>>>>>> Thank you in advance, >>>>>>> >>>>>>> best regards, >>>>>>> >>>>>>> titexe >>>>>>> >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25782958.html >>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Claus Ibsen >>>>> Apache Camel Committer >>>>> >>>>> Open Source Integration: http://fusesource.com >>>>> Blog: http://davsclaus.blogspot.com/ >>>>> Twitter: http://twitter.com/davsclaus >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25800470.html >>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>> >>>> >>> >>> >>> >>> -- >>> Claus Ibsen >>> Apache Camel Committer >>> >>> Open Source Integration: http://fusesource.com >>> Blog: http://davsclaus.blogspot.com/ >>> Twitter: http://twitter.com/davsclaus >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25800861.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> > > > > -- > Claus Ibsen > Apache Camel Committer > > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus > > -- View this message in context: http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25801802.html Sent from the Camel - Users mailing list archive at Nabble.com.