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]を選択します。
すると、プロジェクトの詳細設定窓が開くので、ここでプロジェクト名とか細かい設定を指定します。ここではプロジェクト名をHogeとしました。
次に、Target Runtimeの項目から動作させるTomcatのバージョンなどといった動作環境の設定が必要になります。[New Runtime...]から[New Server Runtime Environment]の画面を開いて、[Apache Tomcat v7.0]を選択してください。
※)これもAzure Websitesで使えるTomcatのバージョンがv7.0のためです。違っても動くかもしれないけど合わせた方が無難かなと。
そうすると、Tomcat 7のインストールディレクトリが聞かれるので、既にインストール済みであればここでそのインストールディレクトリを選んでください。
自分はインストールしてなかったので、この画面の[Download and Install...]からインストールしました。
また、ここでの注意として画面真ん中あたりにある[JRE]の部分は、Java 7を指定しておきましょう。セレクトボックスに出てこない場合は、右側の[Installed JREs...]から追加すると出てきます。
以上で動作環境の設定は完了です。
[New Server Runtime Environment]窓を閉じるとプロジェクト詳細の[Target Runtime]が[Apache Tomcat v7.0]に変わっているはずです。
ここまでできたら[Finish]でプロジェクトの作成は完了です。
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ファイルを設置しましょう。
<?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のように設定を選んで作りましょう。
Websitesができたら、[デプロイ]タブを選んで、[リポジトリ]項目内の[GITのURL]をコピーして、
各々好きなやり方でGitリポジトリをローカルのファイルシステム上にリポジトリをクローンします。(自分はCygwin gitを使ってコマンドラインから git clone しました)
クローンすると、リポジトリ内にwebappsディレクトリがあるはずです。
そのwebappsディレクトリ内にwarファイルを置いて、リモートサーバ上に変更をプッシュ(git push)すると設置したwarファイルが自動的に展開されてWEBサーバ上で動作するようになります。
以上の手順でStruts2/TomcatなWEBアプリをAzure Websites上で動作させることが出来ました。
ここまで読んで頂いた人ありがとうございます。参考になれば幸いです。