To be honest, I know nothing about how to use Eclipse RCP project to
create a bundle.
But here are some basic knowledges about the OSGi bundle.
The bundle is like the usual jar, the only difference is it has sepecial
META-INF/MANIFEST.MF file ,which contains the Import-Package: and
Export-Package and other information, and OSGi framework will use this
information to load the bundle for you.
Please make sure your camel context bundle's MANIFEST.MF file's
Import-Package section has the org.apache.activemq.camel.converter
BTW, if you are using Camel 2.0M3, camel-osgi module will try to load
the package on the bundle context, you do not need to include the
org.apache.activemq.camel.converter package in your camel application
context bundle. So please make sure you also include the activemq-camel
bundle.
Willem
otech wrote:
Thank you for your kindly advice. I am totally new to camel. I am actually
using Camel 2.0M3. The problem still exists. Please point out anything wrong
with my approach as following.
1. Include camel-core-2.0-M3.jar, camel-jms-2.0-M3.jar,
camel-osgi-2.0-M3.jar and camel-spring-2.0-M3.jar into my project.
2. Create spring context xml file as following setting:
<camel:camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
<camel:template id="desktopCamelTemplate" />
<route>
<from uri="activemq:topic:OrderTopic" />
<to uri="bean:orderTopicMessageProcessor" />
</route>
</camel:camelContext>
3. Load spring context file to create spring context in Eclipse RCP project
Application.java
Please let me know what I am missing here. I am new to Camel. Could you give
me some detail about "import the org/apache/activemq/camel/converter package
in camel context bundle"?
Thanks in advance.
willem.jiang wrote:
We did some enhancement[1] on this issue two month ago.
If you don't want to Camel 2.0M3 or Camel 1.6.2-SNAPSHOT,
here is way to walk around this issue.
Please try to import the org/apache/activemq/camel/converter package in
your camel context bundle.
Willem
[1] https://issues.apache.org/activemq/browse/CAMEL-1729
otech wrote:
Hi all, I am facing a problem when using Camel in Eclipse RCP. In our
project, we using spring and camel in Eclipse RCP for processing JMS
message. The problem happening for the converter loading into camel
context.
I looked at some post in Camel Bugzilla. It said it had been fixed in
1.6.
But it still comes out in new version of Eclipse 3.5. Please give me any
suggestion that can solve the problem. Thanks you in advance.
2009-08-05 15:08:03,907 WARN
[org.apache.camel.impl.DefaultPackageScanClassResolver] - Could not read
entries in url:
bundleresource://34.fwk26208195:24/org/apache/activemq/camel/converter/
java.io.FileNotFoundException: \org\apache\activemq\camel\converter (The
system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at
org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:250)
at
org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:178)
at
org.apache.camel.impl.DefaultPackageScanClassResolver.findAnnotated(DefaultPackageScanClassResolver.java:98)
at
org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:62)
at
org.apache.camel.impl.converter.DefaultTypeConverter.checkLoaded(DefaultTypeConverter.java:359)
at
org.apache.camel.impl.converter.DefaultTypeConverter.doConvertTo(DefaultTypeConverter.java:153)
at
org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:86)
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:75)
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:49)
at
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:46)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
at
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
at
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
at
org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
at
org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
at java.lang.Thread.run(Unknown Source)
2009-08-05 15:08:03,860 WARN
[org.apache.camel.impl.DefaultPackageScanClassResolver] - Could not read
entries in url:
bundleresource://34.fwk26208195:22/org/apache/camel/component/file/
java.io.FileNotFoundException: \org\apache\camel\component\file (The
system
cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at
org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:250)
at
org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:178)
at
org.apache.camel.impl.DefaultPackageScanClassResolver.findAnnotated(DefaultPackageScanClassResolver.java:98)
at
org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:62)
at
org.apache.camel.impl.converter.DefaultTypeConverter.checkLoaded(DefaultTypeConverter.java:359)
at
org.apache.camel.impl.converter.DefaultTypeConverter.doConvertTo(DefaultTypeConverter.java:153)
at
org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:86)
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:75)
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:49)
at
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:46)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
at
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
at
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
at
org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
at
org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
at java.lang.Thread.run(Unknown Source)