Hi,
I am new to the Camel world and am trying to learn the behavior of the
aggregator pattern.
I have created a camel configuration with aggregator pattern with file
endpoints.
I got the following consistent error when I tried to run the created the
configuration. java.io.FileNotFoundException.
Exception:
Caused by: java.io.FileNotFoundException:
D:\FuseEclipse3.4.1\runtime-New_configuration(2)\Fuse\Aggregator\out\Copy of
Sample.xml (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown
Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at
org.apache.camel.converter.jaxp.XmlConverter.toDOMDocument(XmlConverter.java:528)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:434)
... 12 more
Following is the Camel Configuration, for which I got the “file not found
exception”.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"><camelContext
id="camelroute" xmlns="http://activemq.apache.org/camel/schema/spring">
<route xmlns="http://activemq.apache.org/camel/schema/spring">
<from
uri="file:///D:/FID_341/runtime-New_configuration/FuseFIDCamel/Aggregator/in"
id="Camel_File_2"/>
<aggregator batchTimeout="3000" batchSize="2" id="Camel_Aggregator_4">
<xpath>/Persons/Person/Name</xpath>
<to
uri="file:///D:/FID_341/runtime-New_configuration/FuseFIDCamel/Aggregator/out"
id="Camel_File_6"/>
</aggregator>
</route>
</camelContext></beans>
Finally I could find the workaround to overcome the issue. I could made it
successfully running by modifying the From URI by adding the ”?noop=true” at
the end.
Below is the camel configuration, which I run successfully.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"><camelContext
id="camelroute" xmlns="http://activemq.apache.org/camel/schema/spring">
<route xmlns="http://activemq.apache.org/camel/schema/spring">
<from
uri="file:///D:/FID_341/runtime-New_configuration/FuseFIDCamel/Aggregator/in?noop=true"
id="Camel_File_2"/>
<aggregator batchTimeout="3000" batchSize="2" id="Camel_Aggregator_4">
<xpath>/Persons/Person/Name</xpath>
<to
uri="file:///D:/FID_341/runtime-New_configuration/FuseFIDCamel/Aggregator/out"
id="Camel_File_6"/>
</aggregator>
</route>
</camelContext></beans>
With the above exercise, I understand that File endpoint component is
consuming the message from file and then it is moving the file to other
location. But Aggregator is trying to pick the file from the previous
location.
Can somebody validate the above statement? I feel this will be a bug and
File endpoint should be able to pass the message exchange to the Aggregator
and Aggregator should process the same message exchange. Can somebody
confirm that this is an issue?
Regards
Ganesh
--
View this message in context:
http://www.nabble.com/java.io.FileNotFoundException%2C-when-tries-to-run-the-aggregator-pattern-tp21201076s22882p21201076.html
Sent from the Camel - Development mailing list archive at Nabble.com.