users@glassfish.java.net

Re: JSF 2 pages spread over multiple OSGi bundles

From: Sahoo <sanjeeb.sahoo_at_oracle.com>
Date: Sat, 06 Aug 2011 20:59:21 +0530

Well, I am well aware of that code as I am the author there. I tried
several times, but could not reproduce, but since you occasionally see
the issue, please file a bug in osgi-javaee and weld category in GF
3.1.1 with the test case that you have. If I am not able to reproduce, I
can give some debug builds to find out the root cause.

Thanks,
Sahoo
On Friday 05 August 2011 08:21 PM, Robert Anderson wrote:
> Sahoo,
>
> The problem is intermittent. Stop and start module1 few times, then
> the problem will occur.
>
> I think that the problem can be here
> (http://svn-mirror.glassfish.org/glassfish-svn/trunk/v3/web/weld-integration/src/main/java/org/glassfish/weld/ACLSingletonProvider.java):
>
> /**
> * This is the most significant method of this class. This is what
> * distingushes it from TCCLSIngleton. It tries to obtain a class loader
> * that's common to all modules of an application (ear). Since it runs
> * in the context of Java EE, it can assume that Thread's context
> * class loader is always set as application class loader. In GlassFish,
> * the class loader can vary for each module of an Ear. Thread's
> * context class loader is set depending on which module is handling
> * the request. But, fortunately all those embedded module class loaders
> * have a common parent in their delegation chain. That parent
> * is of type EarLibClassLoader. So, this code walks up the delegation
> * chain until it hits either a EarLibClassLoader type of parent or
> * bootstrapClassLoader. If former is the case, it returns that
> * instance of EarLibClassLoader. If latter is the case, it assumes
> * that this is a standalone module and hence it returns the thread's
> * context class loader.
> *
> * @return a class loader that's common to all modules of a Java EE app
> */
> private ClassLoader getClassLoader()
> {
> SecurityManager sm = System.getSecurityManager();
> final ClassLoader tccl = (sm != null) ?
> AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
> {
> public ClassLoader run()
> {
> return Thread.currentThread().getContextClassLoader();
> }
> }) : Thread.currentThread().getContextClassLoader();
> if (tccl == null) {
> throw new RuntimeException("Thread's context class loader is null");
> }
>
> ClassLoader cl = tccl;
>
> // most of the time, class loader of application (whether it is a
> // standalone module or an ear) has common class loader in their
> // delegation chain. So, we can break the loop early for them.
> // There are exceptions like hybrid app to this rule.
> // So, we have to walk upto bootstrapCL in worst case.
> while (cl != ccl&& cl != bootstrapCL) {
> if (cl instanceof EarLibClassLoader) {
> // System.out.println("ACLSingletonProvider.getClassLoader():\n" +
> // "Application Class Loader = [ " + cl + "],\n" +
> // "Thread Context Class Loader = [" + tccl + "]");
> return cl;
> }
> cl = getParent(cl);
> }
> return tccl;
> }
> Apparently, in some cases (hybrid applications) getClassLoader()
> doesn't find the correct classloader and store.get(acl) returns null.
>
>
> Robert
>
> On Fri, Aug 5, 2011 at 10:12 AM, Robert Anderson <ranomail_at_gmail.com
> <mailto:ranomail_at_gmail.com>> wrote:
>
> I've this very interesting post
> (http://www.adam-bien.com/roller/abien/entry/singleton_the_simplest_possible_jmx)
>
> "
> ....
>
> 2) Methods called via JMX may also fire *CDI Events*.*However
> there is a problem that the context class loader is not the one of
> the container when the* JMX *method is called and so I had to set
> it manualy. Otherwise I got an Exception during runtime saying
> >>java.lang.IllegalStateException: Singleton not set for
> sun.misc.Launcher$AppClassLoader@...*<<
>
> I would like to ask if using CDI (specially events) during JMX
> calls is not conform to the specification, if its a bug, or if its
> intended to switch the classloader manually. Any Idea?
>
> Thx for your input!
>
> Jan Wiemer
>
> "
>
> The question is: Why the problem is not happening in your environment?
>
> Robert
>
>
> On Fri, Aug 5, 2011 at 9:59 AM, Robert Anderson
> <ranomail_at_gmail.com <mailto:ranomail_at_gmail.com>> wrote:
>
> Sahoo,
>
> Testing with Glassfish 3.1.1...
>
> g! install
> file:/F:/Users/ranophoenix_2/Documents/Pos-ESAB/Experimentos/osgijee/core/target/core.jar
> Bundle ID: 253
> g! start 253
> g! install
> file:/F:/Users/ranophoenix_2/Documents/Pos-ESAB/Experimentos/osgijee/webclient/target/webclient.war
> Bundle ID: 254
> g! start 254
> g! install
> file:/F:/Users/ranophoenix_2/Documents/Pos-ESAB/Experimentos/osgijee/module1/target/module1.war
> Bundle ID: 255
> g! start 255
> ERROR: Bundle ranophoenix.osgijee.webclient [254]:
> EventDispatcher: Error during dispatch.
> (java.lang.IllegalStateExcept
> ion: Singleton not set for
> sun.misc.Launcher$AppClassLoader_at_1f7182c1)
> java.lang.IllegalStateException: Singleton not set for
> sun.misc.Launcher$AppClassLoader_at_1f7182c1
>
> at
> org.glassfish.weld.ACLSingletonProvider$ACLSingleton.get(ACLSingletonProvider.java:110)
> at org.jboss.weld.Container.instance(Container.java:58)
> at
> org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:209)
> at
> org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:174)
> at
> org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:202)
> at
> org.jboss.weld.manager.BeanManagerImpl.resolveObserverMethods(BeanManagerImpl.java:474)
> at
> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:625)
> at org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
> at
> ranophoenix.osgijee.webclient.impl.cdi.ModuleExtensionListener.serviceChanged(ModuleExtensionListener.java:42
>
>
> )
> at
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
> at
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
> at
> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3769)
> at
> org.apache.felix.framework.Felix.access$000(Felix.java:80)
> at
> org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:722)
> at
> org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107)
> at
> org.apache.felix.framework.Felix.registerService(Felix.java:2854)
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:251)
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:229)
> at
> ranophoenix.osgijee.module1.impl.Activator.start(Activator.java:17)
> at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629)
> at
> org.apache.felix.framework.Felix.activateBundle(Felix.java:1835)
> at
> org.apache.felix.framework.Felix.startBundle(Felix.java:1752)
> at
> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:922)
> at
> org.apache.felix.gogo.command.Basic.start(Basic.java:758)
> 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
> org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
> at
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
> at
> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
> at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
> at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
> at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
> at
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
> at
> org.apache.felix.gogo.shell.Console.run(Console.java:62)
> at
> org.apache.felix.gogo.shell.Shell.console(Shell.java:203)
> at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128)
> 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
> org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
> at
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
> at
> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
> at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
> at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
> at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
> at
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
> at
> org.apache.felix.shell.remote.Shell.startGogoShell(Shell.java:108)
> at org.apache.felix.shell.remote.Shell.run(Shell.java:81)
>
> at java.lang.Thread.run(Thread.java:662)
> Module1 started
>
> This problem occurred again in Glassfish V3.1 even after
> clearing the cache. What is your JVM version?
>
> My version (Windows):
>
> java version "1.6.0_25"
> Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
> Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)
>
> this kind of problem is very annoying...
>
> I will continue investigating and I will keep you informed
> about any progress.
>
> Cheers,
>
> Robert
>
>
>
> On Fri, Aug 5, 2011 at 8:44 AM, Robert Anderson
> <ranomail_at_gmail.com <mailto:ranomail_at_gmail.com>> wrote:
>
> Thanks Sahoo!
>
> Problem resolved! I had to clean the osgi-cache dir. Now
> It's working like a charm. :)
>
> Next step: render a JSF page (about.xhtml) in
> module1/module2 from webclient.
>
> I'll try Glassfish 3.1.1.
>
> Best regards,
>
> Robert
>
>
>
> On Fri, Aug 5, 2011 at 8:30 AM, Sahoo
> <sanjeeb.sahoo_at_oracle.com
> <mailto:sanjeeb.sahoo_at_oracle.com>> wrote:
>
> I have now tried with your latest changes and with
> 3.1b43, but could not reproduce. This is what I am doing:
>
> $ telnet localhost 6666
> g! install
> file:/space/ss141213/bugs/scattered-jsf/osgijee/core/target/core.jar
> Bundle ID: 220
> g! install install
> file:/space/ss141213/bugs/scattered-jsf/osgijee/webclient/target/webclient.war
> java.net.MalformedURLException: no protocol: install
> Bundle ID: 222
> g! install
> file:/space/ss141213/bugs/scattered-jsf/osgijee/webclient/target/webclient.war
> Bundle ID: 222
> g! start 220 222
> g! install
> file:/space/ss141213/bugs/scattered-jsf/osgijee/module1/target/module1.war
>
> Bundle ID: 223
> g! start 223
> Module1 started
>
> server.log has following output:
>
>
> [#|2011-08-05T16:54:40.653+0530|INFO|glassfish3.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=52;_ThreadName=pool-7-thread-1;|WEB0671:
> Loading application
> [ranophoenix.osgijee.webclient_1.0.0.SNAPSHOT] at
> [/webclient]|#]
>
> [#|2011-08-05T16:54:40.659+0530|INFO|glassfish3.1|org.glassfish.osgiweb|_ThreadID=19;_ThreadName=pool-7-thread-1;osgi.web.symbolicname=ranophoenix.osgijee.webclient;osgi.web.version=1.0.0.SNAPSHOT;osgi.web.contextpath=/webclient;|Registered
> ServletContext as a service with properties:
> {osgi.web.symbolicname=ranophoenix.osgijee.webclient,
> osgi.web.version=1.0.0.SNAPSHOT,
> osgi.web.contextpath=/webclient} |#]
>
> [#|2011-08-05T16:54:40.661+0530|INFO|glassfish3.1|org.glassfish.osgijavaeebase|_ThreadID=19;_ThreadName=pool-7-thread-1;|deployed
> bundle ranophoenix.osgijee.webclient [222] at
> file:/tmp/osgiapp7051378758467932014/|#]
>
>
> Could you please try with GlassFish 3.1.1? I
> definitely recommend using GlassFish 3.1.1 as it has
> some bug fixes as well. When you use 3.1.1, the shell
> is not turned on by default, otherwise rest of
> OSGi/JavaEE features are all on unlike 3.1. To enable
> the shell, pl. see the instruction in the pdf I had
> earlier pointed to.
>
> Thanks,
> Sahoo
>
> On Friday 05 August 2011 04:24 PM, Robert Anderson wrote:
>> Hi Sahoo,
>>
>> I'm using Glassfish 3.1.build-43.
>>
>> I changed the code to illustrate the problem
>> (http://code.google.com/p/osgijee/source/browse/webclient/src/main/java/ranophoenix/osgijee/webclient/impl/cdi/ModuleExtensionListener.java).
>>
>>
>> Steps:
>>
>> $> asadmin start-database
>> $> asadmin start-domain
>> $> telnet localhost 6666 //osgi shell or OSGi Web Console
>> osgi> install core.jar
>> osgi> start <core.jar id>
>> osgi> install webclient.war
>> osgi> start <webclient.war id>
>>
>> /-- glassfish log --/
>> INFO: Expanded at
>> file:/F:/Users/RANOPH~1/AppData/Local/Temp/osgiapp7656686012903924963/
>> INFO: Instantiated an instance of
>> org.hibernate.validator.engine.resolver.JPATraversableResolver.
>> INFO: total number of classes with faces annotation = 0
>> INFO: Inicializando Mojarra 2.1.0 (FCS 2.1.0-b11)
>> para o contexto '/webclient'
>> INFO: Faces Config uris excluding the ones named as
>> faces-config.xml =
>> [bundle://363.0:0/WEB-INF/classes/META-INF/weld.faces-config.xml]
>> INFO: Facelet Config uris = []
>> INFO: WEB0671: Loading application
>> [ranophoenix.osgijee.webclient_1.0.0.SNAPSHOT] at
>> [/webclient]
>> INFO: Registered ServletContext as a service with
>> properties:
>> {osgi.web.symbolicname=ranophoenix.osgijee.webclient,
>> osgi.web.version=1.0.0.SNAPSHOT,
>> osgi.web.contextpath=/webclient}
>> INFO: deployed bundle ranophoenix.osgijee.webclient
>> [363] at
>> file:/F:/Users/RANOPH~1/AppData/Local/Temp/osgiapp7656686012903924963/
>> /-- end glassfish log --/
>>
>> osgi> install module1.war
>> osgi> start <module1.war id>
>>
>> /-- glassfish log --/
>> INFO: ERROR: Bundle ranophoenix.osgijee.webclient
>> [363]: EventDispatcher: Error during dispatch.
>> (java.lang.IllegalStateException: Singleton not set
>> for WebappClassLoader (delegate=false; repositories=))
>> GRAVE: java.lang.IllegalStateException: Singleton not
>> set for WebappClassLoader (delegate=false; repositories=)
>> at
>> org.glassfish.weld.ACLSingletonProvider$ACLSingleton.get(ACLSingletonProvider.java:110)
>> at
>> org.jboss.weld.Container.instance(Container.java:58)
>> at
>> org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:209)
>> at
>> org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:174)
>> at
>> org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:202)
>> at
>> org.jboss.weld.manager.BeanManagerImpl.resolveObserverMethods(BeanManagerImpl.java:474)
>> at
>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:625)
>> at
>> org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
>> at
>> ranophoenix.osgijee.webclient.impl.cdi.ModuleExtensionListener.serviceChanged(ModuleExtensionListener.java:45)
>> at
>> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)
>> at
>> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
>> at
>> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
>> at
>> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3769)
>> at
>> org.apache.felix.framework.Felix.access$000(Felix.java:80)
>> at
>> org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:722)
>> at
>> org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107)
>> at
>> org.apache.felix.framework.Felix.registerService(Felix.java:2854)
>> at
>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:251)
>> at
>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:229)
>> at
>> ranophoenix.osgijee.module1.impl.Activator.start(Activator.java:17)
>> at
>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629)
>> at
>> org.apache.felix.framework.Felix.activateBundle(Felix.java:1835)
>> at
>> org.apache.felix.framework.Felix.startBundle(Felix.java:1752)
>> at
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:922)
>> at
>> org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114)
>> at
>> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:286)
>> at
>> org.apache.felix.webconsole.internal.misc.ShellServlet.doPost(ShellServlet.java:93)
>> at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>> at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>> at
>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:428)
>> at
>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:375)
>> at
>> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
>> at
>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
>> at
>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:171)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
>> at
>> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
>> at
>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
>> at
>> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
>> at
>> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
>> at
>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>> at
>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>> at
>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>> at
>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>> at
>> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>> at
>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>> at
>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>> at
>> com.sun.grizzly.ContextTask.run(ContextTask.java:71)
>> at
>> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>> at
>> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>> at java.lang.Thread.run(Thread.java:662)
>>
>> INFO: Module1 started
>>
>> /-- end glassfish log --/
>>
>>
>> Thanks in advance,
>>
>> Robert
>>
>>
>> On Fri, Aug 5, 2011 at 1:28 AM, Sahoo
>> <sanjeeb.sahoo_at_oracle.com
>> <mailto:sanjeeb.sahoo_at_oracle.com>> wrote:
>>
>> Robert,
>>
>> I can't reproduce this. I tried commenting out
>> this line of code as well in
>> osgijee/webclient/src/main/java/ranophoenix/osgijee/webclient/impl/cdi/ModuleExtensionListener.java:
>> modExtAddedEvent.fire(me);
>> //java.lang.IllegalStateException: Singleton not
>> set for WebappClassLoader (delegate=false;
>> repositories=)
>>
>> , yet I can't reproduce. I have copied core.jar,
>> webclient.war, module[12].war to
>> autodeploy/bundles/. What step is missing?
>>
>> Thanks,
>> Sahoo
>>
>>
>> On Friday 05 August 2011 12:18 AM, Robert
>> Anderson wrote:
>>> "GlassFish has a number of OSGi features exposed
>>> to the end user which are all nicely documented
>>> in the official documentation."
>>>
>>> Surely! I'm liking very much. Obviously a lot
>>> can still be improved, but that's why we're
>>> here. Long life open source! ;)
>>>
>>> So...
>>>
>>> I'm trying to use CDI events but I'm receiving
>>> the exception below:
>>>
>>> java.lang.IllegalStateException: Singleton not
>>> set for WebappClassLoader (delegate=false;
>>> repositories=)
>>> at
>>> org.glassfish.weld.ACLSingletonProvider$ACLSingleton.get(ACLSingletonProvider.java:110)
>>> at
>>> org.jboss.weld.Container.instance(Container.java:58)
>>> at
>>> org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:209)
>>> at
>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:174)
>>> at
>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:202)
>>> at
>>> org.jboss.weld.manager.BeanManagerImpl.resolveObserverMethods(BeanManagerImpl.java:474)
>>> at
>>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:625)
>>> at
>>> org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
>>> at
>>> ranophoenix.osgijee.webclient.impl.cdi.ModuleExtensionListener.serviceChanged(ModuleExtensionListener.java:45)
>>> at
>>> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)
>>> at
>>> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
>>> at
>>> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
>>> at
>>> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3769)
>>> at
>>> org.apache.felix.framework.Felix.access$000(Felix.java:80)
>>> at
>>> org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:722)
>>> at
>>> org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:135)
>>> at
>>> org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:129)
>>> at
>>> org.apache.felix.framework.ServiceRegistry.unregisterServices(ServiceRegistry.java:178)
>>> at
>>> org.apache.felix.framework.Felix.stopBundle(Felix.java:2227)
>>> at
>>> org.apache.felix.framework.BundleImpl.stop(BundleImpl.java:958)
>>> at
>>> org.apache.felix.shell.impl.StopCommandImpl.execute(StopCommandImpl.java:93)
>>> at
>>> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:286)
>>> at
>>> org.apache.felix.webconsole.internal.misc.ShellServlet.doPost(ShellServlet.java:93)
>>> at
>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>>> at
>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>> at
>>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:428)
>>> at
>>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:375)
>>> at
>>> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
>>> at
>>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
>>> at
>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:171)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
>>> at
>>> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
>>> at
>>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
>>> at
>>> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
>>> at
>>> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
>>> at
>>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>>> at
>>> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>>> at
>>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>>> at
>>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>>> at
>>> com.sun.grizzly.ContextTask.run(ContextTask.java:71)
>>> at
>>> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>>> at
>>> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>>> at java.lang.Thread.run(Thread.java:662)
>>>
>>>
>>>
>>> Source code:
>>> http://code.google.com/p/osgijee/source/browse/webclient/src/main/java/ranophoenix/osgijee/webclient/impl/cdi/ModuleExtensionListener.java
>>>
>>>
>>> Suggestions?
>>>
>>>
>>> Thanks in advance,
>>>
>>> Robert
>>>
>>> On Thu, Aug 4, 2011 at 11:32 AM, Jason Lee
>>> <jason.d.lee_at_oracle.com
>>> <mailto:jason.d.lee_at_oracle.com>> wrote:
>>>
>>> While not perfect, GlassFish has a number of
>>> OSGi features exposed to the end user which
>>> are all nicely documented in the official
>>> documentation. What this user is trying to
>>> do is a pretty specific use case, so it's
>>> not something we have had to investigate
>>> yet. Oddly enough, though, I was recently
>>> requested to do exactly this same thing, so
>>> I'll be looking into this as well.
>>>
>>> We can't cover every use case a user might
>>> have, but we try to cover the big ones. The
>>> others we'll fill in as we can when the need
>>> arises. This is, though, an open source
>>> effort, so there's always room for someone
>>> to jump in and help, as is the case here. :)
>>>
>>>
>>> On 8/4/11 6:48 AM, Martin Gainty wrote:
>>>> your product is suffering mr ellison...
>>>> why doesnt larry open his wallet and hire
>>>> some of the millions of unpaid engineers
>>>> that support this product?
>>>> JBoss is no picnic but at least RH PAYS
>>>> their engineers to put OSGI features in JBoss
>>>>
>>>> 'Nuf said
>>>> Martin Gainty
>>>
>>> --
>>> Jason Lee
>>> Senior Member of Technical Staff
>>> GlassFish REST API / Administration Console
>>>
>>> Oracle Corporation
>>> Phone+1 405-216-3193 <tel:%2B1%20405-216-3193>
>>> Bloghttp://blogs.steeplesoft.com
>>>
>>>
>>
>>
>
>
>
>
>