I'm trying to write a Session Bean in which one of the business methods is giving as result a class from an external jar (external = not included in the jboss lib). When I try to deploy it I get something like this:
java.lang.NoClassDefFoundError: org/apache/myfaces/custom/tree2/TreeNodeBase at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2365) at java.lang.Class.privateGetPublicMethods(Class.java:2488) at java.lang.Class.privateGetPublicMethods(Class.java:2504) at java.lang.Class.getMethods(Class.java:1406) at org.jboss.verifier.strategy.AbstractVerifier.hasEJBCreateMethod(AbstractVerifier.java:664) at org.jboss.verifier.strategy.EJBVerifier20.verifySessionBean(EJBVerifier20.java:834) at org.jboss.verifier.strategy.EJBVerifier20.checkSession(EJBVerifier20.java:64) at org.jboss.verifier.BeanVerifier.verify(BeanVerifier.java:166)
I'm using jboss 4.0.3 and myeclipse. When I check the export checkbox it doesn't help and the resulting ear still doesn't contain the required jar.
In other words the question is:
What's the proper way of deploying external libraries that are to be used by EJB project? Putting them in /lib directory of JBoss seems to work but I suppose this is not the way to go. So how to include external jars in EAR deployment so that they are visible by JBoss classloader (for validating purposes)? (using JBoss and myeclipse)
Thank you in advance for all help.
Joined: Feb 10, 2005
I would put the external jar in the ear if the jar is only used by a certain application. You can specify the ear's class loader repository in jboss-app.xml (in ear's META-INF directory) like this:
Regards, [ October 24, 2005: Message edited by: Heonkoo Lee ]