Can someone provide me a working example of pom.xml which is used to build and deploy ear archive on jboss 5.1.0.
In my application I have two modules – web (.war archive) and java (.jar). I’m trying to accoplish the above task using the following pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>tp</artifactId>
<groupId>com.domain.project</groupId>
<version>0.1</version>
</parent>
<groupId>com.domain.project</groupId>
<artifactId>build</artifactId>
<version>0.1</version>
<packaging>ear</packaging>
<name>project</name>
<repositories>
...
</repositories>
<build>
<finalName>project</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>
<version>1.4.1</version>
<configuration>
<jbossHome>/opt/jboss-5.1.0.GA</jbossHome>
<hostName>localhost</hostName>
<serverName>default</serverName>
<port>8080</port>
<fileNames>
<fileName>${basedir}/target/${build.finalName}.ear</fileName>
</fileNames>
</configuration>
</plugin>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<generateApplicationXml>true</generateApplicationXml>
<jboss>
<modules>
<webModule>web.war</webModule>
<ejbModule>core.jar</ejbModule>
</modules>
<version>5</version>
<loader-repository>com.domain.project:loader=project</loader-repository>
</jboss>
<modules>
<webModule>
<groupId>com.domain.project</groupId>
<artifactId>web</artifactId>
<bundleDir>/</bundleDir>
</webModule>
<javaModule>
<groupId>com.domain.project</groupId>
<artifactId>core</artifactId>
<bundleFileName>core.jar</bundleFileName>
</javaModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.domain.project</groupId>
<artifactId>core</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>com.domain.project</groupId>
<artifactId>web</artifactId>
<version>0.1</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.jboss.el</groupId>
<artifactId>jboss-el</artifactId>
<version>1.0_02.CR4</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam</artifactId>
<version>2.2.0.GA</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-jpdl</artifactId>
<version>3.2.2</version>
<type>jar</type>
</dependency>
</dependencies>
However I’m getting the following exception
org.jboss.deployers.spi.DeploymentException: Cannot process metadata
Seems that application.xml or jboss-app.xml aren’t generated well… Any help will be appreciated.
It seems hard (or at least time consuming) to reproduce your project structure and problem. For this reason, my suggestion would be to use the archetype announced in Getting started with JBoss Seam and Maven in 10 seconds! to create a sample application (with a build that is working as expected) and to mimic the configuration.
To bootstrap the project, run the following command:
$ mvn archetype:generate \ -DarchetypeGroupId=de.akquinet.jbosscc \ -DarchetypeArtifactId=jbosscc-seam-archetype \ -DarchetypeVersion=1.2 \ -DarchetypeCatalog=http://seam-archetype.sourceforge.net/jbosscc-seam-archetype/1.2/archetype-catalog.xml ... Define value for property 'groupId': : com.domain.project Define value for property 'artifactId': : seam-demo Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': com.domain.project: : Define value for property 'seamVersion': : 2.2.0.GA Confirm properties configuration: groupId: com.domain.project artifactId: seam-demo version: 1.0-SNAPSHOT package: com.domain.project seamVersion: 2.2.0.GA Y: : ... [INFO] BUILD SUCCESS ...And
cdinto theseam-demodirectory, runmvn installand both theapplication.xmland the thejboss-app.xmlwill be generated in the ear module.Then, using the
jboss-maven-pluginconfiguration you provided to hard-deploy the ear to a started JBoss worked for me.