You may want to read <https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7>.
On 11/02/2012, at 2:22 PM, Patrick Garner wrote: > I've used the maven-ear-plugin with the maven-war-plugin and > maven-ejb-plugin to successfully deploy and run an application packaged as > EAR to Jboss AS7. > > . > |-- META-INF > | |-- application.xml > | |-- MANIFEST.MF > | `-- maven > | `-- com.patrac > | `-- Patrac-ear > | |-- pom.properties > | `-- pom.xml > |-- Patrac-ejb-1.0-SNAPSHOT.jar > `-- Patrac-web-1.0-SNAPSHOT.war > > In the application source code directories, the poms are located as follows: > > . > | > |-- Patrac-ear > | `-- pom.xml > |-- Patrac-ejb > | `-- pom.xml > |-- Patrac-web > | `-- pom.xml > `-- pom.xml > > I can't figure out how to stop a few annoying warning messages when I > deploy the application: > > 12:32:03,958 WARN [org.jboss.as.server. > deployment] (MSC service thread 1-2) Class Path entry > richfaces-components-ui-4.0.0.Final.jar in > "/content/Patrac.ear/Patrac-web-1.0-SNAPSHOT.war" does not point to a > valid jar for a Class-Path reference. > 12:32:03,970 WARN [org.jboss.as.server.deployment] (MSC service thread > 1-2) Class Path entry richfaces-components-api-4.0.0.Final.jar in > "/content/Patrac.ear/Patrac-web-1.0-SNAPSHOT.war" does not point to a > valid jar for a Class-Path reference. > 12:32:03,984 WARN [org.jboss.as.server.deployment] (MSC service thread > 1-2) Class Path entry richfaces-core-api-4.0.0.Final.jar in > "/content/Patrac.ear/Patrac-web-1.0-SNAPSHOT.war" does not point to a > valid jar for a Class-Path reference. > 12:32:03,989 WARN [org.jboss.as.server.deployment] (MSC service thread > 1-2) Class Path entry richfaces-core-impl-4.0.0.Final.jar in > "/content/Patrac.ear/Patrac-web-1.0-SNAPSHOT.war" does not point to a > valid jar for a Class-Path reference. > > Patrac-web-1.0-SNAPSHOT.war!META-INF/MANIFEST.MF looks like this: > > Manifest-Version: 1.0 > Built-By: pgarner > Build-Jdk: 1.7.0_02 > Class-Path: Patrac-ejb-1.0-SNAPSHOT.jar richfaces-components-ui-4.0.0. > Final.jar richfaces-components-api-4.0.0.Final.jar richfaces-core-api > -4.0.0.Final.jar richfaces-core-impl-4.0.0.Final.jar cssparser-0.9.5. > jar sac-1.3.jar guava-r08.jar > Created-By: Apache Maven > Archiver-Version: Plexus Archiver > > The ejb class-path entry needs to be present for portability but the > richfaces, cssparser and guava class-path entries should not be in the > manifest. The problem is that my WAR depends on all of these JARs, but > some of them live in WEB-INF/lib and one lives in the root directory of the > EAR. Each dependency needs to be present in Patrac-web/pom.xml so that > Maven will put the JARs in the correct places, but I cannot figure out how > to instruct Maven to only include a Class-Path entry for > Patrac-ejb-1.0-SNAPSHOT.jar (and to leave the other JARs out of the > manifest). > > <!-- > According to JEE 6 spec, the application is portable if > Patrac-web.war's META-INF/MANIFEST.MF contains a Class-Path entry > for Patrac-ejb-1.0-SNAPSHOT.jar. > > <optional>true</optional> is the flag that maven-war-plugin uses > to put the entry in MANIFEST.MF without copying > Patrac-ejb-1.0-SNAPSHOT.jar > into WEB-INF/lib. This is what I want. > > <scope>provided</scope> would cause maven-war-plugin to NEITHER > put the entry in MANIFEST.MF nor copy Patrac-ejb.jar into > WEB-INF/lib, > which would not be good. > > No tag at all would cause maven-war-plugin to BOTH put the entry in > MANIFEST.MF and copy Patrac-ejb.jar into WEB-INF/lib, which would > also not be good. > --> > <dependency> > <groupId>com.patrac</groupId> > <artifactId>Patrac-ejb</artifactId> > <type>ejb</type> > <optional>true</optional> > </dependency> > > <!-- > These two dependencies are used to copy > the other JAR files into WEB-INF/lib and there > should not be any class-path entries for such > JARs in MANIFEST.MF, in order to avoid the > error messages. > --> > <dependency> > <groupId>org.richfaces.ui</groupId> > <artifactId>richfaces-components-ui</artifactId> > </dependency> > <dependency> > <groupId>org.richfaces.core</groupId> > <artifactId>richfaces-core-impl</artifactId> > </dependency> > > I'm using the most recent maven-war-plugin version, 2.2. How do I tell the > maven-war-plugin to put the "non-ejb" JARs into WEB-INF/lib while not > putting class-path entries in MANIFEST.MF? > > Any advice or pointers you have are greatly appreciated. > > References: > > - [Maven War Plugin](http://maven.apache.org/plugins/maven-war-plugin/) > - [Maven Ear Plugin](http://maven.apache.org/plugins/maven-ear-plugin/) > > Thanks, > Pat --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
