Hi Is there a Action header at all?
You can use the tracer to look? http://camel.apache.org/tracer I suspect this is the problem. On Thu, Oct 8, 2009 at 12:49 PM, titexe <[email protected]> wrote: > > 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 <[email protected]> >> 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 >>>> <[email protected]> >>>> 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 >>>>>> <[email protected]> >>>>>> 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. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
