You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Willem Jiang (JIRA)" <ji...@apache.org> on 2009/01/09 08:27:59 UTC
[jira] Resolved: (CAMEL-1035) ResolverUtil under Eclipse RPC (OSGi)
error: Could not read entries in url:
bundleresource://36/org/apache/camel/converter
[ https://issues.apache.org/activemq/browse/CAMEL-1035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Willem Jiang resolved CAMEL-1035.
---------------------------------
Resolution: Fixed
Fix Version/s: 2.0.0
1.5.1
It should work by using the spring-osgi's BundleDelegateClassLoader to load type converters.
Please check out the camel latest version for verification.
> 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
> Assignee: Willem Jiang
> Fix For: 1.5.1, 2.0.0
>
>
> 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:
> org.eclipse.core.runtime.internal.adaptor.ContextFinder@983d95
> 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:
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@cec0c5
> 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:
> org.eclipse.core.runtime.internal.adaptor.ContextFinder@983d95
> 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:
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@cec0c5
> --- END TRACE LOG ---
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.