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]

Reply via email to