On upgrade to JBoss 4.0, javax.ejb.SessionBean class not fou
aisrael Jan 5, 2006 5:53 AMBear with me with my longwinded explanation. I'm using:
- JBoss AS 4.0.3 SP1 ("default" install)
- JDK 1.5.0_05
- Mac OS X 10.4.3, ppc
I have some EJBs (packaged as simple JARs) which used to run fine on JBoss 3.2.7 (JDK 1.4.2). Now I'm required to move to Java 5.0, as well as JBoss 4.0.
After installing JBoss 4.0 and copying the JARs over to the deploy directory, first I started getting the following error
18:24:49,947 WARN [verifier] EJB spec violation: Bean : ActivitySSB Section: 22.2 Warning: The Bean Provider must specify the fully-qualified name of the Java class that implements the enterprise bean's business methods in the <ejb-class> element. Info : Class not found on 'com.enterworks.server.ejb.stateless.ActivitySSB': Unexpected error during load of: com.enterworks.server.ejb.stateless.ActivitySSB, msg=javax/ejb/SessionBean 18:24:49,955 ERROR [MainDeployer] Could not create deployment: file:/Users/aisrael/Applications/Enterworks/EPX/jboss-4.0.3SP1/server/default/deploy/ActivityJB.jar org.jboss.deployment.DeploymentException: Verification of Enterprise Beans failed, see above for error messages.
To me that seemed like javax.ejb.SessionBean wasn't being seen by the classloader. http://wiki.jboss.org/wiki/Wiki.jsp?page=EnableClassloaderLogging confirmed my guess when I saw:
[38536,RepositoryClassLoader,main] loadClassLocally, org.jboss.mx.loading.UnifiedClassLoader3@82af41{ url=file:/Users/aisrael/Applications/Enterworks/EPX/jboss-4.0.3SP1/server/default/tmp/deploy/tmp28804ActivityJB.jar ,addedOrder=35} name=com.enterworks.server.ejb.BaseStatelessBean not found [38543,LoadMgr3,main] End beginLoadTask, LinkageError for task: org.jboss.mx.loading.ClassLoadingTask@c85932{classname: com.enterworks.server.ejb.BaseStatelessBean, requestingThread: Thread[main,5,jboss], requestingClassLoader: org.jboss.mx.loading.UnifiedClassLoader3@82af41{ url=file:/Users/aisrael/Applications/Enterworks/EPX/jboss-4.0.3SP1/server/default/tmp/deploy/tmp28804ActivityJB.jar ,addedOrder=35}, loadedClass: nullnull, loadOrder: 2147483647, loadException: null, threadTaskCount: 0, state: 0, #CCE: 0} java.lang.NoClassDefFoundError: javax/ejb/SessionBean at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) . . .(ActivitySSB is a concrete subclass of BaseStatelessBean)
Ok, so javax.ejb.SessionBean can be found under "$JBOSS_HOME/client/jboss-j2ee.jar". Now if I add that to the JBOSS_CLASSPATH, I get a different class not found:
18:40:51,082 INFO [EjbModule] Deploying ActivitySSB 18:40:51,840 WARN [EjbModule] Could not load the org.jboss.webservice.server.ServiceEndpointInterceptor interceptor 18:40:52,281 WARN [ServiceController] Problem creating service jboss.j2ee:jndiName=es/ActivitySSB,service=EJB java.lang.NoClassDefFoundError: org/jboss/util/id/SerialVersion at javax.security.jacc.EJBMethodPermission.<clinit>(EJBMethodPermission.java:45) at org.jboss.ejb.EjbModule.addMissingMethodPermissions(EjbModule.java:1073) at org.jboss.ejb.EjbModule.createMissingPermissions(EjbModule.java:1021) at org.jboss.ejb.Container.createService(Container.java:724) . . .
I found that org.jboss.util.id.SerialVersion can be found in "$JBOSS_HOME/lib/jboss-common.jar". After adding that, another class is not found:
Failed to boot JBoss: org.jboss.deployment.DeploymentException: Could not initialise deployment: file:/Users/aisrael/Applications/Enterworks/EPX/jboss-4.0.3SP1/server/default/conf/jboss-service.xml; - nested throwable: (java.lang.NoClassDefFoundError: EDU/oswego/cs/dl/util/concurrent/ConcurrentReaderHashMap) at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:39) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:785) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:753) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:737)
ConcurrentReaderHashMap is in "$JBOSS_HOME/lib/concurrent.jar". Added that, and now it seems JBoss runs - at least, I can see an active Java process running. If I press "Ctrl+C", I get the typical "Shutting down, Shutdown complete, Halting VM".
My problem now is I can't see any other logging/console output! Nothing in the console. Nothing in "server/default/log". My client application (which used to work) doesn't work - which leads me to believe JBoss didn't boot up or load my beans properly.
I have a sneaky suspicion I'm barking up the wrong tree or going about this in totally the wrong way, but as a relative newbie to JBoss (we were just tasked to do the upgrade) I'm at a loss at what I'm doing wrong.
Thanks in advance![/url]