users@glassfish.java.net

Glassfish not adding jars in ear to the classpath

From: nurulislam <nurul.ise_at_gmail.com>
Date: Fri, 28 Jan 2011 07:50:41 -0800 (PST)

Hi,

I have been working on this problem for one whole day but in vain without
any effective solution.

I have an ear file packaged with an ejb and a handful of jar files
(including hibernate and the other dependent jar files).The ejb is stateless
and enabled as a web service.

The ear file has been packaged using maven and has the below structure

ear->projectrelatedejb.jar

->hibernate.jar

->otherdependent. jar

->META-INF/application.xml

->META-INF/manifest.mf

The application.xml and manifest file are automatically generated by maven
when I do a package.

When I deploy this ear file on glassfish it gets deployed with the ejb
methods being accessible using web services. However when accessing the
application (using soapui),
the ejb methods that perform some database functionality using hibernate
throw java.lang.NoClassDefFoundError for the hibernate api during runtime.

It is obvious from the error that the hibernate jars are not on the
classpath during runtime but since the jars are within the ear Glassfish
should have
added it to the application classpath.

I tried various options like adding the classpath entries to the manifest.mf
during the package (by using the elements
<manifest><addClasspath>true</addClasspath></manifest
with the maven-ear-plugin) which didn't do any good.Also with Glassfish we
cannot add the dependent jars as modules to the application.xml unless the
jars are application client jars
(Glassfish wouldn't deploy the ear file if the application.xml has the
dependent jars declared as modules).

I also tried placing the jars in the lib directory within the ear (which
isn't actually required) and with the manifest Class-Path header referencing
the jars in the lib directory which also didn't fix the problem.

The quick and dirty fix which I can do to get this working is to place the
hibernate and the other the dependent jars in Glassfish's lib
directory.However,this is a bad practice
and I am somewhat reluctant to do it.

I would really appreciate if someone can provide me with a working solution
to this problem.I have gone through the net looking for this problem
but couldn't find any solution.

Wondering if its a bug with glassfish or does glassfish need something
special to reference the jars in an ear.

Thanks in advance.
-- 
View this message in context: http://old.nabble.com/Glassfish-not-adding-jars-in-ear-to-the-classpath-tp30788210p30788210.html
Sent from the java.net - glassfish users mailing list archive at Nabble.com.