[
https://issues.apache.org/activemq/browse/CAMEL-1035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46954#action_46954
]
Claus Ibsen commented on CAMEL-1035:
------------------------------------
All the Camel .jars is added as a classpath to your eclipse application. After
some work to get the OSGi discovery working with the IBM eclipse stuff I gut
stuck with the problem that the type converters is in the camel .jars on the
classpath.
How do I get the Bundle-ClassPath information using standard OSGi?
{code}
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Eclipse Camel Test Plug-in
Bundle-SymbolicName: eclipse_camel_test; singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: test.Activator
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: lib/log4j-1.2.14.jar,
lib/activation-1.1.jar,
lib/aopalliance-1.0.jar,
lib/asm-2.2.3.jar,
lib/bcprov-jdk14-136.jar,
lib/camel-core-2.0-SNAPSHOT.jar,
lib/camel-cxf-1.5-SNAPSHOT.jar,
lib/camel-jms-1.5-SNAPSHOT.jar,
lib/camel-spring-1.5-SNAPSHOT.jar,
lib/commons-io-1.3.2.jar,
lib/commons-lang-2.4.jar,
lib/commons-logging-1.1.1.jar,
lib/commons-pool-1.3.jar,
lib/cxf-api-2.1.1.jar,
lib/cxf-common-schemas-2.1.1.jar,
lib/cxf-common-utilities-2.1.1.jar,
lib/cxf-rt-bindings-soap-2.1.1.jar,
lib/cxf-rt-bindings-xml-2.1.1.jar,
lib/cxf-rt-core-2.1.1.jar,
lib/cxf-rt-databinding-jaxb-2.1.1.jar,
lib/cxf-rt-frontend-jaxws-2.1.1.jar,
lib/cxf-rt-frontend-simple-2.1.1.jar,
lib/cxf-rt-ws-addr-2.1.1.jar,
lib/cxf-rt-ws-security-2.1.1.jar,
lib/cxf-tools-common-2.1.1.jar,
lib/FastInfoset-1.2.2.jar,
lib/geronimo-annotation_1.0_spec-1.1.1.jar,
lib/geronimo-javamail_1.4_spec-1.3.jar,
lib/geronimo-jaxws_2.1_spec-1.0.jar,
lib/geronimo-jms_1.1_spec-1.1.1.jar,
lib/geronimo-jta_1.1_spec-1.1.1.jar,
lib/geronimo-stax-api_1.0_spec-1.0.1.jar,
lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar,
lib/jaxb-api-2.1.jar,
lib/jaxb-impl-2.1.6.jar,
lib/jaxb-xjc-2.1.6.jar,
lib/junit-3.8.1.jar,
lib/neethi-2.0.4.jar,
lib/opensaml-1.1.jar,
lib/saaj-api-1.3.jar,
lib/saaj-impl-1.3.jar,
lib/spring-aop-2.5.5.jar,
lib/spring-beans-2.5.5.jar,
lib/spring-context-2.5.5.jar,
lib/spring-context-support-2.5.5.jar,
lib/spring-core-2.5.5.jar,
lib/spring-jms-2.5.5.jar,
lib/spring-tx-2.5.5.jar,
lib/stax-api-1.0-2.jar,
lib/velocity-1.4.jar,
lib/velocity-dep-1.4.jar,
lib/wsdl4j-1.6.1.jar,
lib/wss4j-1.5.4.jar,
lib/wstx-asl-3.2.4.jar,
lib/xalan-2.7.0.jar,
lib/xml-resolver-1.2.jar,
lib/XmlSchema-1.4.2.jar,
lib/xmlsec-1.4.0.jar,
.,
lib/activemq-core-5.1.0.jar,
lib/geronimo-j2ee-management_1.0_spec-1.0.jar
{code}
> ResolverUtil under Eclipse RPC (OSGi) error: Could not read entries in url:
> bundleresource://36/org/apache/camel/converter
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-1035
> URL: https://issues.apache.org/activemq/browse/CAMEL-1035
> Project: Apache Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 1.5.0
> Reporter: Eduard Hildebrandt
>
> Using Apache Camel 1.5-SNAPSHOT with Eclipse RCP 3.x I get a
> java.io.FileNotFoundException on loading the converters (see stacktrace
> below).
> It seems that issue CAMEL-774 is not fixed.
> I tried to debug the source code:
> --- SOURCE: ResolverUtil.java ----
> Method mth = loader.getClass().getMethod("getBundle", new Class[]
> {});
> if (mth != null) {
> // it's osgi bundle class loader, so we need to load
> implementation in bundles
> if (LOG.isDebugEnabled()) {
> LOG.debug("Loading from osgi buindle using classloader: "
> + loader);
> }
> loadImplementationsInBundle(test, packageName, loader, mth);
> return;
> }
> --- END SOURCE ---
> "loader.getClass().getMethod("getBundle", new Class[] {});" returns null
> because the loader is of type
> "org.eclipse.core.runtime.internal.adaptor.ContextFinder" and does not have a
> "getBundle" method.
> Please see discussion at:
> http://www.nabble.com/ResolverUtil-under-Eclipse-RPC-(OSGi)-error%3A-Could-not-read-entries-in-url%3A-bundleresource%3A--36-org-apache-camel-converter-to20205017s22882.html
> Sample project can be downloaded at:
> http://www.fastshare.org/download/eclipse_camel_test.zip
> Unzip the project and import it to you Eclipse Workspace.
> You have to use Eclipse because it's an Eclipse plugin.
> Instructions to start the project:
> 1. Download, unzip and start an ActiveMQ server.
> 2. Run "ServiceServer" as "Java-Application".
> 3. Open plugin.xml and click on "Launch an Eclipse Application";
> 4. A new Eclipse instance will be start. Select "Sample Menu" "Sample
> Action" in the new Eclipse window.
> 5. Check the errors in the console view.
> --- START TRACE LOG ---
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil findAnnotated
> FEIN: Searching for annotations of org.apache.camel.Converter in packages:
> [org.apache.camel.converter, org.apache.camel.spring.converter]
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Searching for: annotated with @Converter in package:
> org/apache/camel/converter using classloader:
> org.eclipse.core.runtime.internal.adaptor.ContextFinder
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: It's not an osgi bundle classloader
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil getResources
> AM FEINSTEN: Getting resource URL for package: org/apache/camel/converter
> with classloader:
> [EMAIL PROTECTED]
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: URL from classloader:
> bundleresource://36/org/apache/camel/converter
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Decoded urlPath: /org/apache/camel/converter
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Scanning for classes in [/org/apache/camel/converter] matching
> criteria: annotated with @Converter
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> WARNUNG: Could not read entries in url:
> bundleresource://36/org/apache/camel/converter
> java.io.FileNotFoundException: \org\apache\camel\converter (Das System kann
> den angegebenen Pfad nicht finden)
> at java.io.FileInputStream.open(Native Method)
> at java.io.FileInputStream.<init>(FileInputStream.java:106)
> at org.apache.camel.util.ResolverUtil.find(ResolverUtil.java:371)
> at org.apache.camel.util.ResolverUtil.find(ResolverUtil.java:279)
> at
> org.apache.camel.util.ResolverUtil.findAnnotated(ResolverUtil.java:255)
> at
> org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:66)
> at
> org.apache.camel.impl.converter.DefaultTypeConverter.checkLoaded(DefaultTypeConverter.java:218)
> at
> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:64)
> at
> org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:59)
> at
> org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:50)
> at
> org.apache.camel.processor.interceptor.TraceFormatter.getBodyAsString(TraceFormatter.java:115)
> at
> org.apache.camel.processor.interceptor.TraceFormatter.format(TraceFormatter.java:39)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.format(TraceInterceptor.java:68)
> at org.apache.camel.processor.Logger.logMessage(Logger.java:218)
> at org.apache.camel.processor.Logger.process(Logger.java:88)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.logExchange(TraceInterceptor.java:124)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:55)
> at
> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:39)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
> at
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:47)
> at
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:149)
> at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:134)
> at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:92)
> at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:74)
> at
> org.apache.camel.component.cxf.transport.CamelConduit$CamelOutputStream.commitOutputMessage(CamelConduit.java:168)
> at
> org.apache.camel.component.cxf.transport.CamelConduit$CamelOutputStream.doClose(CamelConduit.java:151)
> at
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:156)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
> at
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:159)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242)
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178)
> at $Proxy84.gibAlleDimensionenUndDescriptoren(Unknown Source)
> at
> net.enbw.etg.rcm.pfc.marktdaten.MarktDatenProviderImpl.getAlleDimensionenUndDescriptoren(MarktDatenProviderImpl.java:183)
> at
> net.enbw.etg.rcm.pfc.proxies.ServiceLocator.getAlleDimensionenUndDeskriptoren(ServiceLocator.java:187)
> at
> net.enbw.etg.rcm.pfc.view.navigator.Navigator$2.doInBackground(Navigator.java:181)
> at
> net.enbw.etg.rcm.pfc.view.navigator.Navigator$2.doInBackground(Navigator.java:1)
> at javax.swing.SwingWorker$1.call(SwingWorker.java:278)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at javax.swing.SwingWorker.run(SwingWorker.java:317)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Searching for: annotated with @Converter in package:
> org/apache/camel/converter using classloader:
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: It's not an osgi bundle classloader
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil getResources
> AM FEINSTEN: Getting resource URL for package: org/apache/camel/converter
> with classloader:
> [EMAIL PROTECTED]
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: URL from classloader:
> bundleresource://36/org/apache/camel/converter
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Decoded urlPath: /org/apache/camel/converter
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Scanning for classes in [/org/apache/camel/converter] matching
> criteria: annotated with @Converter
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> WARNUNG: Could not read entries in url:
> bundleresource://36/org/apache/camel/converter
> java.io.FileNotFoundException: \org\apache\camel\converter (Das System kann
> den angegebenen Pfad nicht finden)
> at java.io.FileInputStream.open(Native Method)
> at java.io.FileInputStream.<init>(FileInputStream.java:106)
> at org.apache.camel.util.ResolverUtil.find(ResolverUtil.java:371)
> at org.apache.camel.util.ResolverUtil.find(ResolverUtil.java:279)
> at
> org.apache.camel.util.ResolverUtil.findAnnotated(ResolverUtil.java:255)
> at
> org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:66)
> at
> org.apache.camel.impl.converter.DefaultTypeConverter.checkLoaded(DefaultTypeConverter.java:218)
> at
> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:64)
> at
> org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:59)
> at
> org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:50)
> at
> org.apache.camel.processor.interceptor.TraceFormatter.getBodyAsString(TraceFormatter.java:115)
> at
> org.apache.camel.processor.interceptor.TraceFormatter.format(TraceFormatter.java:39)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.format(TraceInterceptor.java:68)
> at org.apache.camel.processor.Logger.logMessage(Logger.java:218)
> at org.apache.camel.processor.Logger.process(Logger.java:88)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.logExchange(TraceInterceptor.java:124)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:55)
> at
> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:39)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
> at
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:47)
> at
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:149)
> at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:134)
> at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:92)
> at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:74)
> at
> org.apache.camel.component.cxf.transport.CamelConduit$CamelOutputStream.commitOutputMessage(CamelConduit.java:168)
> at
> org.apache.camel.component.cxf.transport.CamelConduit$CamelOutputStream.doClose(CamelConduit.java:151)
> at
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:156)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
> at
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:159)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242)
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178)
> at $Proxy84.gibAlleDimensionenUndDescriptoren(Unknown Source)
> at
> net.enbw.etg.rcm.pfc.marktdaten.MarktDatenProviderImpl.getAlleDimensionenUndDescriptoren(MarktDatenProviderImpl.java:183)
> at
> net.enbw.etg.rcm.pfc.proxies.ServiceLocator.getAlleDimensionenUndDeskriptoren(ServiceLocator.java:187)
> at
> net.enbw.etg.rcm.pfc.view.navigator.Navigator$2.doInBackground(Navigator.java:181)
> at
> net.enbw.etg.rcm.pfc.view.navigator.Navigator$2.doInBackground(Navigator.java:1)
> at javax.swing.SwingWorker$1.call(SwingWorker.java:278)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at javax.swing.SwingWorker.run(SwingWorker.java:317)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Searching for: annotated with @Converter in package:
> org/apache/camel/spring/converter using classloader:
> org.eclipse.core.runtime.internal.adaptor.ContextFinder
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: It's not an osgi bundle classloader
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil getResources
> AM FEINSTEN: Getting resource URL for package:
> org/apache/camel/spring/converter with classloader:
> [EMAIL PROTECTED]
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: No URLs returned by classloader
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: Searching for: annotated with @Converter in package:
> org/apache/camel/spring/converter using classloader:
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil find
> AM FEINSTEN: It's not an osgi bundle classloader
> 28.10.2008 16:18:17 org.apache.camel.util.ResolverUtil getResources
> AM FEINSTEN: Getting resource URL for package:
> org/apache/camel/spring/converter with classloader:
> [EMAIL PROTECTED]
> --- END TRACE LOG ---
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.