ASi

Eclipse で tomcat servlet 作成 〜 Amazon Linux へ deploy

http://d.hatena.ne.jp/ashura156/20170131/1485858123 の続きです。

local PC 用の tomcat


下記を参考
http://qiita.com/deconcepter/items/2393cc68d73b19e9ad65


http://tomcat.apache.org/download-80.cgi に行き必要な ver の tomcat バイナリを落とす。開発PCが OSX の場合 Core: の zip or tar.gz 。解凍する。


# 操作用スクリプトに実行権を与える (Unix系の場合)
cd apache-tomcat-8.0.41
chmod +x bin/*.sh


# 起動
bin/startup.sh


# shutdown
bin/shutdown.sh


開発時には Eclipse が勝手に起動するので止めておきます。

Eclipse の Dynamic Web Project で servlet を作る。

Eclipse でこのプロジェクトを選び作る。


Target runtime として tomcat を設定

  • 新しい Project の作成ダイアログで、Target runtime の New Runtime ボタンを押す。
  • インストールした ver の tomcat を選び、インストールディレクトリを設定し、Finish ボタン。


この時点で Configuration には自動で Default Configuration for Apache Tomcat vx.x が入っているはず。
next, next と行き、

  • Generate web.xml deployment descriptor にチェックをつける。


これで Project 作成完了。


次に servletjava class を追加する。

  • File->New->Other...->select a wizard ダイアログで Servlet を選ぶ
  • Java package: と Class name を入れ、Finish


実行

  • Runボタン(再生マーク) で local PC 上で実行。tomcat の選択画面が出る。
  • Finish すると、Eclipse 内にブラウザが開き Servlet の実行結果が表示される。

remote server の tomcat に deploy する。

web.xmlServlet のクラスと url のサブパスのマッピングを記述する。
タグの子として下記のように追加する。この例は 2 つの Servletを追加している。

	<!-- http://some.server.com/dynamic_web/test  -->
    <servlet>
        <servlet-name>test servlet</servlet-name>
        <servlet-class>com.test.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test servlet</servlet-name>        
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

	<!-- http://some.server.com/dynamic_web/test2  -->
    <servlet>
        <servlet-name>test servlet 2</servlet-name>
        <servlet-class>com.test.TestServlet2</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test servlet 2</servlet-name>        
        <url-pattern>/test2</url-pattern>
    </servlet-mapping>


WAR作成


# Amazon Linux にコピー
scp -i private_key.pem dynamic_web.war ec2-user@ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com:/home/ec2-user


# Amazon Linux にログオンし deploy
# まず web app のディレクトリにコピーし
sudo cp dynamic_web.war /usr/share/tomcat8/webapps
# apache を設定し繋ぐ。この作業は一度するだけ。
sudo vi /etc/httpd/conf.modules.d/httpd-proxy.conf

ProxyPass /sample ajp://localhost:8009/sample
ProxyPass /dynamic_web ajp://localhost:8009/dynamic_web   # これを追加

# apache を reboot
sudo service httpd stop
sudo service httpd start


# local PC で見られることを確認する。
http://ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com/dynamic_web/test2