Create a WAB in JBoss AS 7.1.1
eloi.rui Jan 29, 2014 9:46 AMHello, I'm trying to create a Web Application Bundle for JBoss AS 7.1.1 but each time I try to deploy the bundle is deployed correctly but I can't access the web-contextroot.
Here's my steps:
1. Create a new Maven Web Application in NetBeans. Build, deploy in Jboss and works 100%.
2. Add pom configuration of maven-bundle-plugin (I'm using the same configuration of Part 4 of 6: OSGi-enabled Java EE Applications - https://www.youtube.com/watch?v=bSX89JjQoRM)
<build> <finalName>${artifactId}</finalName> <pluginManagement> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.1.0</version> <extensions>true</extensions> <configuration> <supportedProjectTypes> <supportedProjectType>ejb</supportedProjectType> <supportedProjectType>war</supportedProjectType> <supportedProjectType>bundle</supportedProjectType> <supportedProjectType>jar</supportedProjectType> </supportedProjectTypes> <instructions> <!-- Read all OSGi configuration info from this optional file --> <_include>-osgi.properties</_include> <!-- By default, we don't export anything --> <Export-Package>!*.impl.*, *</Export-Package> </instructions> </configuration> <executions> <execution> <id>bundle-manifest</id> <phase>process-classes</phase> <goals> <goal>manifest</goal> </goals> </execution> <execution> <id>bundle-install</id> <phase>install</phase> <goals> <goal>install</goal> </goals> </execution> </executions> </plugin> <plugin> <!-- Need to use this plugin to build war files --> <artifactId>maven-war-plugin</artifactId> <groupId>org.apache.maven.plugins</groupId> <!-- Use version 2.1-beta-1, as it supports the new property failOnMissingWebXml --> <version>2.1-beta-1</version> <configuration> <archive> <!-- add bundle plugin generated manifest to the war --> <manifestFile> ${project.build.outputDirectory}/META-INF/MANIFEST.MF </manifestFile> <!-- For some reason, adding Bundle-ClassPath in maven-bundle-plugin confuses that plugin and it generates wrong Import-Package, etc. So, we generate it here. --> <manifestEntries> <Bundle-ClassPath>WEB-INF/classes/ </Bundle-ClassPath> </manifestEntries> </archive> <!-- We don't have a web.xml --> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- add bundle plugin generated manifest to the jar --> <manifestFile> ${project.build.outputDirectory}/META-INF/MANIFEST.MF </manifestFile> </archive> </configuration> </plugin> <plugin> <!-- Need to use this plugin to build ejb-jar files --> <artifactId>maven-ejb-plugin</artifactId> <groupId>org.apache.maven.plugins</groupId> <!-- Use version 2.1-beta-1, as it supports the new property failOnMissingWebXml --> <version>2.1</version> <configuration> <configuration> <ejbVersion>3.1</ejbVersion> </configuration> <archive> <!-- add bundle plugin generated manifest to the war --> <manifestFile> ${project.build.outputDirectory}/META-INF/MANIFEST.MF </manifestFile> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <!-- Enable this plugin for all modules --> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> </plugin> </plugins> </build>
3. Add osgi.properties file with:
Bundle-ClassPath: .,WEB-INF/classes/
Bundle-SymbolicName: testeee
Web-ContextPath: /Testeee
5. Add Activator class:
import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; /** * * @author reloi */ public class Activator implements BundleActivator { public void start(BundleContext context) throws Exception { System.out.println("Hello"); } public void stop(BundleContext context) throws Exception { System.out.println("Bye"); } }
Build. Try to deploy appears the message: Cannot obtain web.xml from: vfs:
4. Add web.xml in WEB-INF
<?xml version="1.0" encoding="UTF-8"?> <web-app id="testeee" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app>
5. Deploy
14:42:00,208 INFO [org.jboss.osgi.framework.internal.BundleManager] (MSC service thread 1-2) Install bundle: testeee:1.0.0.SNAPSHOT 14:42:00,214 INFO [stdout] (MSC service thread 1-2) Hello 14:42:00,215 INFO [org.jboss.osgi.framework.internal.HostBundleState] (MSC serv ice thread 1-2) Bundle started: testeee:1.0.0.SNAPSHOT 14:42:00,411 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018565: Replaced deployment "testeee.war" with deployment "testeee.war"
But when I try to access http://localhost:8080/testeee/ the page doesn't exists.
What am I doing wrong? Any thoughts?
Thanks
-
testeee.zip 5.3 KB