Hi bongosdude,

It looks like the war plugin is not javaee-5 aware. Anything you put in the ear lib directory gets into the ear classloader which is a parent to the war classloader. Thus you don't need the war manifest classpath entries at all in an ee5 container such as geronimo. Your solution should work but is unnecessarily complicated. Since the maven plugin isn't ee-5 aware it may be easier not to stop generating the manifest classpath entries.

Thanks for pointing this out! I created a maven jira in case anyone there wants to work on this... http://jira.codehaus.org/browse/MWAR-178

david jencks

On Jan 10, 2009, at 9:35 AM, bongosdude wrote:


Hi,

I found the an interesting thing about the problem that I reported in this post thread. Basically, I set up my project as maven and then convert the build EAR into eclipse projects so that I can debug my ejb and war app using
GEP (please also see my other post from
http://www.nabble.com/car-maven-plugin-and-GEP-to21095185s134.html to see how this can be done.) I have followed the practice to bundle my WAR project
so that it refers all lib dependencies to its EAR lib directory. This
practice is well documented as skinny war (please see
http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html) .
The interesting here is that maven is quite smart to handle transitive
dependency and as a result, mave generates my war META-INF/ METAFEST.MF to refer to some missing jar files in EAR lib directory. Once I manually added these jars file to my ear pom.xml file, I fixed the mysterious "JAVAEE 5
Section 8.2" problem.

Thanks for all excellent supports from this forum who has made geronimo well
JEE app and product.

-B


bongosdude wrote:

After I fixed the manifest classpath problem, maven successfully build my
project. But I still have questions about geronimo-web.xml.

Thanks
-B

Embedded error: Manifest class path entries must be a valid jar file
(JAVAEE 5 Section 8.2): path= lib/callingcard-ejb-0.0.1-SNAPSHOT.jar,
resolved to targetURI= lib/callingcard-ejb-0.0.1-SNAPSHOT.jar



bongosdude wrote:

Background

I encountered this problem that I do not quite understand. I set up my demo after I looked at the car-maven-plugin, m2eclipse and the geronimo sample calculator. I have manually created my demo project by using maven
achetype-create with groupId=org.apache.geronimo.samples and
archytypeId=geronimo-samples-archetypes. And then I tweaked POM files generated by looking at calculator POM files. I had to go through this manual process because my web application is Tapestry5. And I have to add dependencies to POM files. Maven build sub projects successfully except when it tried to build jetty and tomcat CAR plugin. Here are the error
messages that I got:

[WARN]  Web application callingcard-war-0.0.1-SNAPSHOT.war does not
contain a WEB-INF/geronimo-web.xml deployment plan. This may or may not
be a problem, depending on whether you have things like resource
references that need to be resolved. You can also give the deployer a
separate deployment plan file on the command line.
[INFO]  The Strict Manifest Classpath processing mode is in effect.
This option can be altered by specifying
-DXorg.apache.geronimo.deployment.LenientMFCP=true|false
Specify ="true" for more lenient processing such as ignoring missing jars
and references that are not spec compliant.
12:50:39,649 INFO  [config] Configuring
Service(id=DefaultStatelessContainer, type=Container, provider- id=Default
Stateless Container)
12:50:39,653 INFO  [config] Configuring
Service(id=DefaultStatefulContainer, type=Container, provider- id=Default
Stateful Container)
12:50:39,654 INFO  [config] Configuring
Service(id=DefaultSingletonContainer, type=Container, provider- id=Default
Singleton Container)
12:50:39,655 INFO [config] Configuring Service(id=DefaultBMPContainer,
type=Container, provider-id=Default BMP Container)
12:50:39,655 INFO [config] Configuring Service(id=DefaultCMPContainer,
type=Container, provider-id=Default CMP Container)
12:50:39,663 INFO  [config] Configuring enterprise application:
com.myvoip.ipservices/callingcard-jetty/0.0.1-SNAPSHOT/car
12:50:40,359 INFO  [OpenEJB] Auto-deploying ejb PayPalNVPProcessor:
EjbDeployment(deployment-id=callingcard-ejb-0.0.1-SNAPSHOT.jar/ PayPalNVPProcessor)
12:50:40,360 INFO  [OpenEJB] Auto-deploying ejb NutalkNewOrderBean:
EjbDeployment(deployment-id=callingcard-ejb-0.0.1-SNAPSHOT.jar/ NutalkNewOrderBean)
12:50:40,360 INFO  [OpenEJB] Auto-deploying ejb SampleBean:
EjbDeployment(deployment-id=callingcard-ejb-0.0.1-SNAPSHOT.jar/ SampleBean)
12:50:40,412 INFO  [config] Enterprise application
"com.myvoip.ipservices/callingcard-jetty/0.0.1-SNAPSHOT/car" loaded.
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] could not package plugin

Embedded error: Manifest class path entries must be a valid jar file
(JAVAEE 5 Section 8.2): path= lib/callingcard-ejb-0.0.1- SNAPSHOT.jar,
resolved to targetURI= lib/callingcard-ejb-0.0.1-SNAPSHOT.jar
looking at: callingcard-war-0.0.1-SNAPSHOT.war current classpath:
[WEB-INF/classes/, ../lib/callingcard-common-0.0.1-SNAPSHOT.jar,
../lib/paypal-stubs-4.3.1.jar, ../lib/paypal-base-4.3.1.jar,
../lib/commons-lang-2.4.jar, ../lib/spring-2.5.6.jar,
../lib/commons-logging-1.0.4.jar,
../lib/callingcard-ejb-0.0.1-SNAPSHOT.jar]    ignoring modules:
[callingcard-ejb-0.0.1-SNAPSHOT.jar, callingcard-war-0.0.1- SNAPSHOT.war]
No such file or directory
[INFO]
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 47 seconds
[INFO] Finished at: Fri Jan 09 12:50:42 EST 2009
[INFO] Final Memory: 64M/125M
[INFO]
------------------------------------------------------------------------
die


Questions:

1. It seems that I got my first error is that I did not create
WEB-INF/geronimo-web.xml. I can define the option
-DXorg.apache.geronimo.deployment.LenientMFCP=true to make the build
successful. However, I looked at the calculator, it does not have the
WEB-INF/geronimo-web.xml but maven does not fail when it builds
jetty/tomcat car plugin. So why do I have this error? What do I miss in
my pom files?

2. Can somesome explain what
DXorg.apache.geronimo.deployment.LenientMFCP=true|false does?

Thank for any helps

-B







-----
B Amigo:super:
--
View this message in context: 
http://www.nabble.com/Maven-build-failed-with-missing-WEB-INF-geronimo-web.xml-tp21377598s134p21390405.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Reply via email to