camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vikas Kumar Arora <vikas_kumar...@yahoo.com>
Subject Camel File: how to retain Original File contents when moving file?
Date Wed, 19 May 2010 01:55:36 GMT

Hi, 
My use case, Bulk Load Operation where I've several thousand XML files:
1. Read XML files from a folder 
2. wrap A SOAP Message structure around that XML file
3. send it to Web Service
4. transform response from Web Service into XML response
(which it already is, but if I give the output of WS directly to XPath I get 
java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to
org.w3c.dom.Node
). Any way this works.
5. Now the problem point: now based on the SOAP message's SUCCESS or FAILURE
status, I've to move the ORIGINAL file and it's content (original of course)
to appropriate folder.
  
  I was going thru the docs, and some where found that there is
"useOriginalMessage", but that's only available at the "onException" element
level.

 But In my case I dont have any exception, 

1. So I'm not sure if similar "useOriginalMessage" flag/attribute should
also be useful at the URI level say for
"uri=file:...?useOriginalMessage=true"?

2. Or is there any way to hold the, original file's content in Camel Global
context (if accessible thru Camel DSL) somewhere and be available for use
later at any point.

Just like Http Session, where for a given session (or like Http Request),
where we can keep our data for the duration of the
Transaction(request/session) and use accordingly?


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:spring="http://www.springframework.org/schema/beans"
	   xmlns:camel="http://camel.apache.org/schema/spring"
	   xmlns:jetty="http://mortbay.com/schemas/jetty/1.0"
	   
	   xsi:schemaLocation="
			http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
			http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
			http://mortbay.com/schemas/jetty/1.0 http://jetty.mortbay.org/jetty.xsd 
			http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
			">
	<camel:camelContext xmlns="http://camel.apache.org/schema/spring"
						xmlns:spmlv2="urn:oasis:names:tc:SPML:2:0">
						
		<camel:package>com.xxxxx.sample.camel.router</camel:package>

		<camel:route>
			<camel:from uri="file://C:/Projec~1/Documents/xmls/xmls?noop=true"/>
			<camel:to uri="xslt:wrapXMLWithSOAPMessageStructure.xsl"/>
			<camel:to uri="bean:someBean"/>
			<camel:to uri="http://login.abcd.com/IS/services/ISService"/>
			<camel:to uri="xslt:SOAPResponseMessageTransform.xsl"/>
			<choice>
			    <when>
				<xpath>//spmlv2:modifyResponse[@status='success']</xpath>
				<camel:to
uri="file://C:/Projec~1/Documents/xmls/xmls/success?useOriginalMessage=true"/>
			    </when>
			    <when>
				<xpath>//spmlv2:modifyResponse[@status='failure']</xpath>
				<camel:to
uri="file://C:/Projec~1/Documents/xmls/xmls/error?useOriginalMessage=true"/>
			    </when>
			    <otherwise>

			    </otherwise>
			</choice>
		</camel:route>

	</camel:camelContext>
	<bean id="someBean" class="com.abcd.sample.camel.SomeBean" />
	
</beans>



-- 
View this message in context: http://old.nabble.com/Camel-File%3A-how-to-retain-Original-File-contents-when-moving-file--tp28603397p28603397.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message