Annies,
OK, this is same as issue #8458
(
https://glassfish.dev.java.net/issues/show_bug.cgi?id=8458). Yesterday,
I sent a proposal to dev@ with a solution to this issue. I have a fix,
which you have verified separately. So, once the code review is done, I
can put it back in trunk.
Thanks,
Sahoo
Annies wrote:
> I have to set the naming factory because I want my application to
> work. Along with that, I have to get the osgi-http jar to work also.
>
> If I don't set the property osgi-http starts fine but my application
> fails with a NoInitialContext.
> If I set the property my application works fine but osgi-http fails
> with a ClassNotFound.
> If you can provide any workarounds for getting around this
> ClassNotFound that should be good for now.
> This is puzzling because the class is there indeed.
>
> The application I am using is a JBI service assembly that is deployed
> on a JBI component called sun-database-binding.
> I have not looked at the binding component code yet. But it works fine
> in V2.
> If InitialContext(env) would solve this issue for sure, then I can try
> it out. But it is a relatively long process to get the component updated.
> I will wait for your response before I go that route.
>
>
> Thanks
> Annies
>
>
> ------------------------------------------------------------------------
> *From:* Sahoo <Sahoo_at_Sun.COM>
> *To:* users_at_glassfish.dev.java.net
> *Sent:* Wednesday, May 27, 2009 6:10:14 AM
> *Subject:* Re: NoInitialContextException
>
> Don't set any of the java.naming.factory.initial.* system properties.
> Tell us what error you are seeing. Also tell us what you are trying to do.
>
> I don't think we can fix anything 3.0-Preview, as the final build may
> have been already done. How ever, we should be able to give you a
> patch or something of that sort. But, first give us the above information.
>
> Thanks,
> Sahoo
>
> Annies wrote:
> > Forgot to mention, we need to resolve this ASAP for a JavaONE lab.
> >
> > ------------------------------------------------------------------------
> > *From:* Annies <annies_a_at_yahoo.com <mailto:annies_a_at_yahoo.com>>
> > *To:* users_at_glassfish.dev.java.net <mailto:users_at_glassfish.dev.java.net>
> > *Sent:* Tuesday, May 26, 2009 11:42:21 PM
> > *Subject:* Re: NoInitialContextException
> >
> > Yes. SerialInitContextFactory is in glassfish-naming.properties. So
> I went ahead and tested my application with the naming factory set to
> it in system.properties and it works fine.
> > Actually class lookup is failing somwehre else. This is what made me
> think that SerialInitContextFactory was not included.
> >
> > This can be easily reprouced by using this system.properties and
> trying to install and start osgi-http.jar -
> http://download.java.net/maven/glassfish/org/glassfish/web/osgi-http/3.0-b47/osgi-http-3.0-b47.jar
> > I verified that all the export and import package headers match and
> tried to use auto install for glassfish-naming.jar and even a
> DynamicImport-Package from osgi-http.jar. Nothing helped.
> > Can somebody please look into this?
> >
> > system.properties:
> >
> java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory
> > java.naming.factory.url.pkgs=com.sun.enterprise.naming
> >
> java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl
> >
> > Stack Trace:
> >
> [#|2009-05-26T23:30:31.477-0700|INFO|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|ERROR:
> Error starting
> file:/Users/annies/gf/glassfishv3/glassfish//modules/osgi-http.jar
> (org.osgi.framework.BundleException: Activator start error in bundle
> org.glassfish.web.osgi-http [8].)|#]
> >
> >
> [#|2009-05-26T23:30:31.478-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|java.lang.RuntimeException:
> javax.naming.NoInitialContextException: Cannot instantiate class:
> com.sun.enterprise.naming.impl.SerialInitContextFactory [Root
> exception is java.lang.ClassNotFoundException:
> com.sun.enterprise.naming.impl.SerialInitContextFactory]|#]
> >
> >
> [#|2009-05-26T23:30:31.478-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.<init>(InjectionManagerImpl.java:90)|#]
> >
> >
> [#|2009-05-26T23:30:31.478-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)|#]
> >
> >
> [#|2009-05-26T23:30:31.478-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)|#]
> >
> >
> [#|2009-05-26T23:30:31.478-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)|#]
> >
> >
> [#|2009-05-26T23:30:31.479-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> java.lang.reflect.Constructor.newInstance(Constructor.java:513)|#]
> >
> >
> [#|2009-05-26T23:30:31.479-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.Class.newInstance0(Class.java:355)|#]
> >
> >
> [#|2009-05-26T23:30:31.479-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.Class.newInstance(Class.java:308)|#]
> >
> >
> [#|2009-05-26T23:30:31.480-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.ConstructorWomb.create(ConstructorWomb.java:72)|#]
> >
> >
> [#|2009-05-26T23:30:31.480-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:71)|#]
> >
> >
> [#|2009-05-26T23:30:31.480-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)|#]
> >
> >
> [#|2009-05-26T23:30:31.480-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)|#]
> >
> >
> [#|2009-05-26T23:30:31.480-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)|#]
> >
> >
> [#|2009-05-26T23:30:31.481-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> org.jvnet.hk2.component.Habitat.getByContract(Habitat.java:570)|#]
> >
> >
> [#|2009-05-26T23:30:31.481-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.enterprise.web.EmbeddedWebContainer.<init>(EmbeddedWebContainer.java:114)|#]
> >
> >
> [#|2009-05-26T23:30:31.481-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.enterprise.web.WebContainer.postConstruct(WebContainer.java:522)|#]
> >
> >
> [#|2009-05-26T23:30:31.481-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:170)|#]
> >
> >
> [#|2009-05-26T23:30:31.481-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:90)|#]
> >
> >
> [#|2009-05-26T23:30:31.481-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.security.AccessController.doPrivileged(Native Method)|#]
> >
> >
> [#|2009-05-26T23:30:31.481-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:87)|#]
> >
> >
> [#|2009-05-26T23:30:31.482-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:77)|#]
> >
> >
> [#|2009-05-26T23:30:31.482-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)|#]
> >
> >
> [#|2009-05-26T23:30:31.482-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)|#]
> >
> >
> [#|2009-05-26T23:30:31.482-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)|#]
> >
> >
> [#|2009-05-26T23:30:31.485-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at org.jvnet.hk2.component.Habitat.getBy(Habitat.java:576)|#]
> >
> >
> [#|2009-05-26T23:30:31.485-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at org.jvnet.hk2.component.Habitat.getByType(Habitat.java:557)|#]
> >
> >
> [#|2009-05-26T23:30:31.488-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at org.jvnet.hk2.component.Habitat.getComponent(Habitat.java:317)|#]
> >
> >
> [#|2009-05-26T23:30:31.488-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at org.glassfish.internal.api.Globals.get(Globals.java:53)|#]
> >
> >
> [#|2009-05-26T23:30:31.488-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> org.glassfish.web.osgihttp.Activator.getStandardContext(Activator.java:94)|#]
> >
> >
> [#|2009-05-26T23:30:31.488-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at org.glassfish.web.osgihttp.Activator.start(Activator.java:86)|#]
> >
> >
> [#|2009-05-26T23:30:31.488-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)|#]
> >
> >
> [#|2009-05-26T23:30:31.488-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at org.apache.felix.framework.Felix.startBundle(Felix.java:1458)|#]
> >
> >
> [#|2009-05-26T23:30:31.489-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:984)|#]
> >
> >
> [#|2009-05-26T23:30:31.489-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:263)|#]
> >
> >
> [#|2009-05-26T23:30:31.489-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.Thread.run(Thread.java:637)|#]
> >
> >
> [#|2009-05-26T23:30:31.489-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|Caused
> by: javax.naming.NoInitialContextException: Cannot instantiate class:
> com.sun.enterprise.naming.impl.SerialInitContextFactory [Root
> exception is java.lang.ClassNotFoundException:
> com.sun.enterprise.naming.impl.SerialInitContextFactory]|#]
> >
> >
> [#|2009-05-26T23:30:31.489-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)|#]
> >
> >
> [#|2009-05-26T23:30:31.492-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)|#]
> >
> >
> [#|2009-05-26T23:30:31.493-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at javax.naming.InitialContext.init(InitialContext.java:223)|#]
> >
> >
> [#|2009-05-26T23:30:31.493-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at javax.naming.InitialContext.<init>(InitialContext.java:175)|#]
> >
> >
> [#|2009-05-26T23:30:31.493-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.<init>(InjectionManagerImpl.java:88)|#]
> >
> >
> [#|2009-05-26T23:30:31.494-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> ... 33 more|#]
> >
> >
> [#|2009-05-26T23:30:31.495-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|Caused
> by: java.lang.ClassNotFoundException:
> com.sun.enterprise.naming.impl.SerialInitContextFactory|#]
> >
> >
> [#|2009-05-26T23:30:31.495-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.net <http://java.net>
> <http://java.net>.URLClassLoader$1.run(URLClassLoader.java:200)|#
> <http://java.net%3E.URLClassLoader$1.run%28URLClassLoader.java:200%29%7C#>]
> >
> >
> [#|2009-05-26T23:30:31.496-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.security.AccessController.doPrivileged(Native Method)|#]
> >
> > [#|2009-05-26T23:30:31.496-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.net
> <http://java.net.URLClassLoader.fi>.URLClassLoader.findClass(URLClassLoader.java:188)|#
> <http://java.net.URLClassLoader.fi%3E.URLClassLoader.findClass%28URLClassLoader.java:188%29%7C#>]
> >
> >
> [#|2009-05-26T23:30:31.497-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.ClassLoader.loadClass(ClassLoader.java:316)|#]
> >
> >
> [#|2009-05-26T23:30:31.497-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)|#]
> >
> >
> [#|2009-05-26T23:30:31.497-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)|#]
> >
> >
> [#|2009-05-26T23:30:31.498-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.Class.forName0(Native Method)|#]
> >
> >
> [#|2009-05-26T23:30:31.499-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at java.lang.Class.forName(Class.java:247)|#]
> >
> >
> [#|2009-05-26T23:30:31.503-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)|#]
> >
> >
> [#|2009-05-26T23:30:31.503-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)|#]
> >
> >
> [#|2009-05-26T23:30:31.503-0700|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
> ... 37 more|#]
> >
> > ------------------------------------------------------------------------
> > *From:* Sahoo <Sahoo_at_Sun.COM <mailto:Sahoo_at_Sun.COM>>
> > *To:* users_at_glassfish.dev.java.net <mailto:users_at_glassfish.dev.java.net>
> > *Sent:* Tuesday, May 26, 2009 12:49:14 PM
> > *Subject:* Re: NoInitialContextException
> >
> > That class is there in modules/glassfish-naming.jar. So, something
> else is going wrong here. It appears that GlassFish naming manager is
> not currently designed to work in an OSGi environment. Did you do a
> new InitialContext() in your code? If yes, as a work around, just try
> doing a *new InitialContext(env)* where env contains the property
> name/value pair.
> >
> > Sahoo
> >
> > Annies wrote:
> > > I have bundle that does some JNDI lookup. This used to work fine
> in V3 until recently.
> > > Before using build 47, I used to set this property in Felix
> system.properties
> > >
> java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory
> > >
> > > The class SerialInitContextFactory is not included in latest
> builds. How should I fix this?
> > >
> > >
> > >
> [#|2009-05-26T12:17:57.375-0700|WARNING|glassfish|com.sun.jbi.sun-database-binding.org.glassfish.openesb.databasebc.OutboundMessageProcessor|_ThreadID=28;_ThreadName=Thread-1;|Failed
> to write message:.
> > > javax.naming.NoInitialContextException: Need to specify class name
> in environment or system property, or as an applet parameter, or in an
> application resource file: java.naming.factory.initial
> > > at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
> > > at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
> > > at
> javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
> > > at javax.naming.InitialContext.lookup(InitialContext.java:392)
> > > at
> org.glassfish.openesb.databasebc.OutboundMessageProcessor.getDataSourceFromContext(OutboundMessageProcessor.java:1289)
> > > at
> org.glassfish.openesb.databasebc.OutboundMessageProcessor.getDatabaseConnection(OutboundMessageProcessor.java:1316)
> > > at
> org.glassfish.openesb.databasebc.OutboundMessageProcessor.processInOnly(OutboundMessageProcessor.java:1079)
> > > at
> org.glassfish.openesb.databasebc.OutboundMessageProcessor.execute(OutboundMessageProcessor.java:273)
> > > at
> org.glassfish.openesb.databasebc.OutboundMessageProcessor.run(OutboundMessageProcessor.java:164)
> > > 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:637)
> > > |#]
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> <mailto:users-unsubscribe_at_glassfish.dev.java.net>
> <mailto:users-unsubscribe_at_glassfish.dev.java.net
> <mailto:users-unsubscribe_at_glassfish.dev.java.net>>
> > For additional commands, e-mail: users-help_at_glassfish.dev.java.net
> <mailto:users-help_at_glassfish.dev.java.net>
> <mailto:users-help_at_glassfish.dev.java.net
> <mailto:users-help_at_glassfish.dev.java.net>>
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> <mailto:users-unsubscribe_at_glassfish.dev.java.net>
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
> <mailto:users-help_at_glassfish.dev.java.net>
>
>