You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2008/10/30 12:01:08 UTC

[jira] Commented: (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:comment-tabpanel&focusedCommentId=46911#action_46911 ] 

Claus Ibsen commented on CAMEL-1035:
------------------------------------

I think a workaround is to register the needed type converters manually.

If you can get hold of DefaultTypeConverter there is an addTypeConverter() method.
But of course it would be great if the annotation based classloading works as well.

I have this Eclipse:
Version: 3.3.0
Build id: I20070621-1340

Do I need to download any other Eclipse stuff to get working, or is all the needed .jars in the .zip project?

> 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:
> 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.