Help us understand the problem. What is going on with this article?

Struts2/TomcatなWebアプリケーションをローカルGit経由でAzure Websitesにデプロイするまで

More than 5 years have passed since last update.

Azure Websites上にStruts2/Tomcatなアプリケーションをデプロイするまでの手順をまとめてみます。

開発環境セットアップ

何はともあれ、最初にStruts2/TomcatなWebアプリケーションを作るために必要な環境をセットアップしましょう。
Struts2で作るんだったらホントはmavenとか使ったほうが良いと思うけど、とりあえずってことで使わない方向でまとめます。

最初にインストールしたものは↓の通りです。
* Java SE 7
* Eclipse IDE for Java EE Developers

注意として、Azure Websites上で利用できるJavaが7なので、8で作ったらうまく動きませんでした。Eclipse上でビルド設定とか変更すればうまくいきそうな気もするけど...(知っている人いたら教えて下さい)

プロジェクトの作成

JavaとEclipseのインストールが済んだら、EclipseからWEBプロジェクトを作成しましょう。
Eclipseを開いて、[File]-[New]-[Project...]からWebカテゴリ内の[Dynamic Web Project]を選択します。

image

すると、プロジェクトの詳細設定窓が開くので、ここでプロジェクト名とか細かい設定を指定します。ここではプロジェクト名をHogeとしました。

image

次に、Target Runtimeの項目から動作させるTomcatのバージョンなどといった動作環境の設定が必要になります。[New Runtime...]から[New Server Runtime Environment]の画面を開いて、[Apache Tomcat v7.0]を選択してください。
※)これもAzure Websitesで使えるTomcatのバージョンがv7.0のためです。違っても動くかもしれないけど合わせた方が無難かなと。

image

そうすると、Tomcat 7のインストールディレクトリが聞かれるので、既にインストール済みであればここでそのインストールディレクトリを選んでください。
自分はインストールしてなかったので、この画面の[Download and Install...]からインストールしました。

また、ここでの注意として画面真ん中あたりにある[JRE]の部分は、Java 7を指定しておきましょう。セレクトボックスに出てこない場合は、右側の[Installed JREs...]から追加すると出てきます。

image

以上で動作環境の設定は完了です。
[New Server Runtime Environment]窓を閉じるとプロジェクト詳細の[Target Runtime]が[Apache Tomcat v7.0]に変わっているはずです。
ここまでできたら[Finish]でプロジェクトの作成は完了です。

image

Struts2のセットアップ

プロジェクトが作成できたら、次はこのプロジェクト上でStruts2のコードが動作するように設定しましょう。
ここでは前述の通り、mavenとかは使わず必要なjarを直接ダウンロードしてます。

まず、Struts公式のダウンロードページ https://struts.apache.org/download.cgi から下記のファイルをダウンロードしました。
※)他に色々あるけどjarが欲しかっただけなのでこれを選びました。

  • struts-2.3.20-lib.zip

ダウンロードしたzipを解凍して、中身の[lib]フォルダの中から必要なものとして、下記のファイルを作成したプロジェクト内のWEB-INF/libの中にコピーします。
※)ホントはもっと少なくても大丈夫かもしれません。

  • asm-5.0.2.jar
  • commons-fileupload-1.3.1.jar
  • commons-io-2.2.jar
  • commons-lang3-3.2.jar
  • commons-logging-1.1.3.jar
  • freemarker-2.3.19.jar
  • javassist-3.11.0.GA.jar
  • ognl-3.0.6.jar
  • struts2-codebehind-plugin-2.3.20.jar
  • struts2-core-2.3.20.jar
  • xwork-core-2.3.20.jar

上記のファイルをコピーし終わったら、下記の内容でWEB-INFフォルダ内にweb.xmlファイルを設置しましょう。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="Struts2" version="2.4">
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
      <param-name>actionPackages</param-name>
      <param-value>hogepackage</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

以上で、TomcatとStruts2の連携設定は終了です。

WEBアプリの実装

ここは各自で適当にやりましょう(丸投げ。。。)

Azure Websitesの作成とデプロイ

それではいよいよAzure Websites側の準備に入りましょう。
まずはAzureポータルにログインして、下記のSSのように設定を選んで作りましょう。

image

image

Websitesができたら、[デプロイ]タブを選んで、[リポジトリ]項目内の[GITのURL]をコピーして、
各々好きなやり方でGitリポジトリをローカルのファイルシステム上にリポジトリをクローンします。(自分はCygwin gitを使ってコマンドラインから git clone しました)

image

クローンすると、リポジトリ内にwebappsディレクトリがあるはずです。
そのwebappsディレクトリ内にwarファイルを置いて、リモートサーバ上に変更をプッシュ(git push)すると設置したwarファイルが自動的に展開されてWEBサーバ上で動作するようになります。

以上の手順でStruts2/TomcatなWEBアプリをAzure Websites上で動作させることが出来ました。
ここまで読んで頂いた人ありがとうございます。参考になれば幸いです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away