quality@glassfish.java.net

Failed to deploy EJB app on GFv3

From: Wouter van Reeven <wouter_at_van.reeven.nl>
Date: Mon, 25 Aug 2008 13:56:19 +0200

Hi,


Today I created a very simple web application in NetBeans 6.1. I created two
Entity classes, a local session bean interface and a stateless implementation, a
JSF managed bean and a JSF page. In order to get this working in NetBeans I had
to create a GFv3 library and add several jars despite of the GFv3 plugin I
installed, but that's another issue.

When I tried to deploy the war I got this error in the GFv3 server.log

org.jvnet.hk2.component.ComponentException: Failed to create class org.glassfish.ejb.EjbSniffer
    at com.sun.hk2.component.ConstructorWomb.create(ConstructorWomb.java:76)
    at com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:74)
    at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)
    at com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)
    at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)
    at org.jvnet.hk2.component.Habitat$1.get(Habitat.java:243)
    at java.util.AbstractList$Itr.next(AbstractList.java:345)
    at com.sun.enterprise.v3.server.SnifferManager.createSnifferParentCL(SnifferManager.java:150)
    at com.sun.enterprise.v3.server.SnifferManager.createSnifferParentCL(SnifferManager.java:161)
    at com.sun.enterprise.v3.deployment.DeployCommand.execute(DeployCommand.java:238)
    at com.sun.enterprise.v3.admin.CommandRunner.doCommand(CommandRunner.java:286)
    at com.sun.enterprise.v3.admin.CommandRunner.doCommand(CommandRunner.java:114)
    at com.sun.enterprise.v3.admin.CommandRunner.doCommand(CommandRunner.java:94)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:230)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:156)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:148)
    at com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:621)
    at com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:552)
    at com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:800)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
    at com.sun.enterprise.v3.services.impl.HttpProtocolFilter.execute(HttpProtocolFilter.java:82)
    at com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:70)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
    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:309)
    at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:168)
Caused by: java.lang.NoClassDefFoundError: javax/ejb/Singleton
    at org.glassfish.ejb.EjbSniffer.<clinit>(EjbSniffer.java:65)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.sun.hk2.component.ConstructorWomb.create(ConstructorWomb.java:70)
    ... 27 more
Caused by: java.lang.ClassNotFoundException: javax.ejb.Singleton
    at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:200)
    at org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
    at org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ... 35 more
Caused by: java.lang.ClassNotFoundException: javax.ejb.Singleton
    at org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:109)
    at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:507)
    at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:468)
    at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:187)
    ... 39 more

Issuing this command in the modules directory

for i in *.jar; do echo $i; jar tf $i | grep Singleton.class; done

shows there is no javax.ejb.Singleton class. I queried Issue Tracker but there
is no bug reported for this yet. Would you like me to do that?


Thanks, Wouter
-- 
People: "If she weighs the same as a Duck, she's made of wood!"
Sir Bedevere: "And therefore...?"