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.

Reply via email to