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 cd
into the seam-demo
directory, run mvn install
and both the application.xml
and the the jboss-app.xml
will be generated in the ear module.
Then, using the jboss-maven-plugin
configuration you provided to hard-deploy the ear to a started JBoss worked for me.