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