GlassFish v3 sets bootdelegation=* to support "extension class loading."
It is needed for it to be backward compatible with earlier versions of
GlassFish. In earlier versions of GlassFish, users were allowed to drop
a jar file in JRE's extension directories (like domains/domain1/lib/ext
or jre/lib/ext) and make their content available to applications. Since
v3 has to be backward compatible with v2, the feature is supported via
bootdelegation=*.
Looking at the stacktrace, I see you are trying to initialize your own
version of Felix in your web application. The classloader of the web
application first delegates to a parent classloader which has access to
v3's version of Felix and that's being picked up. You can probably work
around the issue by switching off delegation. By doing so, GlassFish
will give preference to your war file's content first before delegating.
Try adding a WEB-INF/sun-web.xml in your war file with following content:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC '-//Sun Microsystems, Inc.//DTD
Application Server 9.0 Servlet 2.5//EN'
'http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd'>
<sun-web-app>
<class-loader delegate="false"/>
</sun-web-app>
I am not sure if this feature is already implemented in v3 or not. What
version of v3 are you using? If you have further issues, please feel
free to ask in GlassFish forum.
Thanks,
Sahoo
Vinicius Carvalho wrote:
Well in their config.properties they do use:
org.osgi.framework.bootdelegation=*
So, would this mean that all libs (including Felix) would be using
bootdelegation?
Regards
On Sun, Feb 1, 2009 at 8:23 PM, Richard S. Hall <[email protected]>wrote:
p.s. Keep in mind that I am just guessing as to the cause...
Richard S. Hall wrote:
I think they may use boot delegation...
-> richard
Karl Pauls wrote:
Still sounds rather strange doesn't it? Why would glassfish leak it's
version of felix to the application?
regards,
Karl
On Sun, Feb 1, 2009 at 9:34 PM, Richard S. Hall <[email protected]>
wrote:
The constructor changed from Felix 1.2.x to 1.4.x, so if it is expecting
the
old-style constructor, then you will have an issue. I am not sure what
is
going on here, but I don't think GF directly tries to construct Felix
and I
have successfully gotten GF to run with Felix 1.4.x by simply changing
some
configuration properties. If the issue is that you have two different
versions of Felix available at the same time, then you will probably
need to
convert your GF to use the newer version of Felix so you only have one.
-> richard
Vinicius Carvalho wrote:
Hello there! After finally getting our app running. we are now
evaluating
it
on different application servers. And we got it working on JBoss 4.2.x,
JBoss 5.0, Tomcat 5.5. and 6.0, Jetty 6.x, Geronimo (tomcat and jetty
versions) and also Spring DM Server.
We could not get it working on glassfish, v2.1 simply freeze in a
manner
that it never comes back unless we remove the domain and create a new
one,
really weird, we are gonna look at glassfish mailing lists for that.
Now v3, which is an osgi container based on felix, seems to have some
classloading issues. I'm stating this because it complains about felix
not
having a method, and seems that they load an old version of felix on
bootstrap, and since we are using 1.4.1, we get some problems with
startup.
Here's the exception:
Any ideas?
Best regards
[#|2009-02-01T17:06:51.963-0200|WARNING|glassfish|javax.enterprise.system.container.web|_ThreadID=18;_ThreadName=Thread-3;|java.lang.IllegalStateException:
ContainerBase.addChild: start: LifecycleException:
java.lang.NoSuchMethodError:
org.apache.felix.framework.Felix.<init>(Ljava/util/Map;)V
java.lang.IllegalStateException: ContainerBase.addChild: start:
LifecycleException: java.lang.NoSuchMethodError:
org.apache.felix.framework.Felix.<init>(Ljava/util/Map;)V
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:926)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:906)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2205)
at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1890)
at
com.sun.enterprise.web.WebApplication.start(WebApplication.java:85)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.start(ApplicationLifecycle.java:560)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.start(ApplicationLifecycle.java:547)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:189)
at
org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:329)
at
com.sun.enterprise.v3.admin.CommandRunner$2.execute(CommandRunner.java:297)
at
com.sun.enterprise.v3.admin.CommandRunner.doCommand(CommandRunner.java:312)
at
com.sun.enterprise.v3.admin.CommandRunner.doCommand(CommandRunner.java:119)
at
com.sun.enterprise.v3.admin.CommandRunner.doCommand(CommandRunner.java:99)
at
org.glassfish.admingui.common.util.LocalDeploymentFacility$LocalDFCommandRunner.run(LocalDeploymentFacility.java:140)
at
org.glassfish.deployment.client.AbstractDeploymentFacility.deploy(AbstractDeploymentFacility.java:243)
at
org.glassfish.admingui.common.util.DeployUtil.invokeDeploymentFacility(DeployUtil.java:93)
at
org.glassfish.admingui.common.util.DeployUtil.deploy(DeployUtil.java:70)
at
org.glassfish.admingui.handlers.DeploymentHandler.deploy(DeploymentHandler.java:152)
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:597)
at
com.sun.jsftemplating.layout.descriptors.handler.Handler.invoke(Handler.java:422)
at
com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:420)
at
com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:394)
at
com.sun.jsftemplating.layout.event.CommandActionListener.invokeCommandHandlers(CommandActionListener.java:132)
at
com.sun.jsftemplating.layout.event.CommandActionListener.processAction(CommandActionListener.java:80)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at
javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
at javax.faces.component.UICommand.broadcast(UICommand.java:372)
at
com.sun.webui.jsf.component.WebuiCommand.broadcast(WebuiCommand.java:160)
at
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
at
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
at
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at
com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:80)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:431)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:337)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
at
com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:370)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:250)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
at
org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:460)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
at
com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
at
com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
at
com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
at
com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
at
com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
at
com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
|#]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]