Deploying a Java Apps and JBoss EAP into Openshift 4
Sometimes we still have to maintain an application which is still deployed on top of JBoss EAP and in a Virtual Machine, and planning in onboarding them into Openshift.
Deploying this kind of applications is almost the same as deploying a Spring Boot applications on Openshift. Only need one command for doing it.
So lets start with a basic maven file,
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.edw</groupId>
<artifactId>HelloWorldWar</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<optimize>true</optimize>
<debug>true</debug>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warName>${project.name}</warName>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
Lets set the context root of this app,
<jboss-web>
<context-root>/</context-root>
</jboss-web>
And a servlet for serving some content,
package com.edw;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "HelloServlet", urlPatterns = "/")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1> Hello World </h1>");
}
}
And make sure the structure of our project is like below,
+--- .gitignore +--- pom.xml +--- README.md +--- src | +--- main | | +--- java | | | +--- com | | | | +--- edw | | | | | +--- HelloServlet.java | | +--- webapp | | | +--- WEB-INF | | | | +--- jboss-web.xml
We can deploy our code to test-project namespace in our Openshift by using below command,
$ oc new-app openshift/jboss-eap73-openjdk11-openshift:latest~. \ --name=hello-world -n test-project
Code for this tutorial can be seen in below Github url
https://github.com/edwin/hello-world-jboss-eap

