Bluemixでtomcatのアプリを動かす! その1

はじめまして、eagle-palaceです。

アジャイルクラウド、セールスフォースに関していろいろ触ってみたことを日記風にアップさせていただきますのでよろしくお願いいたします。

 

最近話題のBluemixについて。

BluemixはIBMの提供するPaas(クラウド開発プラットフォーム)で、効率的にいろいろなアプリを開発・運用できるプラットフォームです。

 詳しくはこちら↓

 http://www.bluemix.net

 

今日は、Tomcatで作成したアプリをBluemixで動かす方法をご紹介します。

すでにJavaが導入されているものとします。

手順:

1. Tomcatのダウンロード

Apache Tomcat - Apache Tomcat 8 Downloads

ここから、適当なバージョンをダウンロードし、ローカルのディレクトリに解凍します。

2. サンプルアプリの配備 

 1) webpps配下にtestという名前のディレクトリを作成し、さらにWEB-INF

   という名前のディレクトリを作成します。

 WEB-INFの下に下記のようにclassesディレトリを作成します。

 下記のようになります。

 webapps

         ---- test

               ---- WEB-INF

                     --- classes

 2) test/WEB-INF/classes配下に、helloworld.java というファイルを

 

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
 public void doGet(HttpServletRequest request,
 HttpServletResponse response)
 throws IOException, ServletException
 {

  PrintWriter out = response.getWriter();
  out.println("<html>");
  out.println("Hello! World");
  out.println("</html>");
  out.close();
 }
}

の内容で作成します。

 

  3)  test/WEB-INF配下に、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>
 <servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>HelloWorld</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>
   hello
  </servlet-name>
  <url-pattern>
   /helloworld
  </url-pattern>
 </servlet-mapping>
</web-app>

 

の内容で作成します。

 

 4)  ターミナル等で、test/WEB-INF/classesに移動し、

   javac  -classpath <TOMCAT_HOME>/lib/servlet-api.jar helloworld.java

  でコンパイルします。

 

5) ターミナル等で、 test ディレクトリーに移動し、

  jar cf MyApp.war .

 でwarファイルを作成します。

これでアプリの準備が整いました。

 

3.  ローカル環境での稼働確認

 まず、ローカル環境で稼働を確認しましょう。

 <TOMCAT_HOME>ディレクトリーに移動し、

 ./bin/startup.sh で Tomcatを起動します。

   任意のブラウザで、 http://localhost:8080/test/helloworld

    と入力すると、Hello! World とブラウザ上に表示されるはずです。

 

4. Bluemixへのデプロイ

 それでは、Bluemixにこのアプリをデプロイしてみましょう。

 あらかじめ、 BluemixのID登録と、CFコマンドラインインターフェース

 のインストールをしておく必要があります。

 ターミナルで、testディレクトリーに移動し、

   cf  api https://api.ng.bluemix

     cf login

       Email>  xxxxxxx
      Password>  xxxxxx
 

  とBluemixにログインした後、

  cf push <appname> -p MyApp.war -b java_buildpack

 でBluemixにプッシュします。

 <appname>は、Bluemix全体でユニークになるような名前を指定してください。

   しばらくすると、bluemix上のダッシュボードに<appname>のアプリケーション

 が開始されているはずです。

 

f:id:eagle-palace:20160210161559p:plain

 

 5.Bluemixでの稼働確認

  ブラウザで、

  http://.mybluemix.net/helloworld

     と入力してみてください。

  ローカルと同じく、Hello! World と表示されるはずです。

 

f:id:eagle-palace:20160210160114p:plain

 

これで、TomcatのアプリをBluemixで稼働させることが確認できました!

cf push で使用した、 -b java_buildpack の指定によって、bluemixにおいて、アプリを

Tomcatの環境で動かすことができるようになります。

 

それでは、また。