You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Travis Stevens <tr...@gaiam.com> on 2008/08/01 19:07:27 UTC

packaging my ear

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




Re: packaging my ear

Posted by Travis Stevens <tr...@gaiam.com>.
I added my jars to the lib dir and it worked, so thank you.  I was using
the maven-ear-plugin and assumed that it would put the jars in the
appropriate place by default.

-Trav

On Fri, 2008-08-01 at 10:55 -0700, David Jencks wrote:
> 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
> >
> >
> >
> 


Re: packaging my ear

Posted by David Jencks <da...@yahoo.com>.
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
>
>
>