Only stuff in lib gets automatically added to the ear classpath. If you really need the other jars to be at the root of the ear you'll need to redefine the lib directory to / (this might cause problems, I'm not sure) or use manifest classpath in your ejb module to pick up the jars.

hope this helps
david jencks

On Aug 1, 2008, at 10:07 AM, Travis Stevens wrote:

Howdy.

I'm getting the following failure:
16:47:29,741 ERROR [Deployer] Deployment failed due to
java.lang.NoClassDefFoundError: com/gaiam/gcsi/service/ProgramService
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:465)

I think that I am missing something when packaging the ear file.
Basically, the class ProgramService is in gcsi-services.jar which is
placed at the root of the ear.  ProgramService is just a simple
interface.

The three EJB specific classes, notably @Local ProgramServiceLocal,
@Remote ProgramServiceRemote and @Statless ProgramServiceImpl, reside in gcsi-impl.jar which is also placed at the root of the ear. There is an
entry in META-INF/application.xml for that file:

<application>
 <display-name>gcsi-ear</display-name>
 <module>
   <ejb>gcsi-impl.jar</ejb>
 </module>
</application>

The entity beans are placed in lib/gcsi-core.jar.

All the rest of the libraries (like commons-lang.jar, etc) are placed in
the root of the ear file.

Any thoughts would be appreciated.

-Trav




Reply via email to