[
https://issues.apache.org/jira/browse/FELIX-842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12653736#action_12653736
]
Karl Pauls commented on FELIX-842:
----------------------------------
This looks bad. The issue is that the tomcat WebappClassLoader is creating
URL's while doing a classload. Now, what happens is that when we set our
URLHandlers it is asked to get a handler for a URL needed for a classload.
Getting the handler involves loading classes which triggers another classload
via the WebappClassLoader and there we go...
As mentioned, one solution is to diable URLHandlers for now if you run into
this. Another could be to do what I will do internally to resolve this issue
externally namely, preload all classes that we need inside a handlers lookup. I
will add a comment with all the classes you need to preload soon.
Thanks for reporting!
> Linkage-Error when embedding Felix inside Tomcat 6
> --------------------------------------------------
>
> Key: FELIX-842
> URL: https://issues.apache.org/jira/browse/FELIX-842
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: felix-1.4.0
> Environment: Windows XP SP3, Java 1.5.0, Tomcat 6.0
> Reporter: Daniel Bremer-Tonn
> Assignee: Karl Pauls
>
> When embedding Felix in Tomcat I get the following Exception on Felix-Startup:
> ERROR: Unable to start system bundle. (java.lang.LinkageError:
> org/osgi/service/url/URLStreamHandlerService)
> java.lang.LinkageError: org/osgi/service/url/URLStreamHandlerService
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:164)
> at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.class$(URLHandlersStreamHandlerProxy.java:77)
> at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.getStreamHandlerService(URLHandlersStreamHandlerProxy.java:391)
> at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:267)
> at java.net.URL.<init>(URL.java:596)
> at java.net.URL.<init>(URL.java:464)
> at java.net.URL.<init>(URL.java:413)
> at java.net.URI.toURL(URI.java:1081)
> at
> org.apache.catalina.loader.WebappClassLoader.getURI(WebappClassLoader.java:2355)
> at
> org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2008)
> at
> org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
> at
> org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:164)
> at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.class$(URLHandlersStreamHandlerProxy.java:77)
> at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.getStreamHandlerService(URLHandlersStreamHandlerProxy.java:391)
> at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:267)
> at java.net.URL.<init>(URL.java:596)
> at java.net.URL.<init>(URL.java:464)
> at java.net.URL.<init>(URL.java:413)
> at java.net.URI.toURL(URI.java:1081)
> at
> org.apache.catalina.loader.WebappClassLoader.getURI(WebappClassLoader.java:2355)
> at
> org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2008)
> at
> org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
> at
> org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at org.apache.felix.framework.Felix.registerService(Felix.java:2694)
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:252)
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:230)
> at
> org.apache.felix.framework.StartLevelActivator.start(StartLevelActivator.java:39)
> at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)
> at
> org.apache.felix.framework.Felix$SystemBundleActivator.start(Felix.java:3761)
> at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)
> at org.apache.felix.framework.Felix.init(Felix.java:849)
> at org.apache.felix.framework.Felix.start(Felix.java:881)
> at ... osgi.FelixStartupServlet.init(FelixStartupServlet.java:118)
> at javax.servlet.GenericServlet.init(GenericServlet.java:212)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
> at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
> at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> at org.apache.catalina.core.StandardService.start(StandardService.java:516)
> at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.