Deploying A Simple Hello World App using OpenLiberty S2I to Openshift
For this example im using OpenLiberty version 19.0.0.6, and install corresponding image to my Openshift registry using below command,
oc import-image openliberty/open-liberty-s2i:19.0.0.6
Can check our list of images on our imagestream by using this command,
oc get is
Next is creating a simple hello-world webapps, with below pom
<?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>hello-world-servlet</groupId> <artifactId>com.edw</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <sourceDirectory>src/main/java</sourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <webXml>src\main\webapp\WEB-INF\web.xml</webXml> </configuration> </plugin> <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> </configuration> </plugin> </plugins> </build> </project>
And web.xml,
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>My Web Application</display-name> <servlet> <servlet-name>helloServlet</servlet-name> <servlet-class>com.edw.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloServlet</servlet-name> <url-pattern>/hello.servlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/hello.jsp</welcome-file> </welcome-file-list> <session-config> <session-timeout>30</session-timeout> </session-config> </web-app>
A simple JSP file,
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello World</title> </head> <body> Hello World </body> </html>
And a simple java file,
package com.edw; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.getWriter().println("Hello"); } }
And a simple server.xml file,
<?xml version="1.0" encoding="UTF-8"?> <server description="OpenLiberty Server"> <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443"/> <webApplication location="com.edw-1.0-SNAPSHOT.war"/> </server>
After project is properly setup, we can do a simple mvn build,
mvn clean package
And push our application to Openshift, run below command on the root of your project location
oc new-build --name=my-openliberty-full --image-stream=open-liberty-s2i:19.0.0.6 --binary=true oc start-build my-openliberty-full --from-dir=. oc new-app my-openliberty-full --name=my-openliberty-full
We can access our newly created app directly thru browser,
No Comments