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 作成完了。
次に servlet の java class を追加する。
実行
remote server の tomcat に deploy する。
web.xml に Servlet のクラスと url のサブパスのマッピングを記述する。
<!-- 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作成
- Project Explorer で Servlet の Project を選び
- File->Export->Web->WAR file Next>
- Destination に 適当なディレクトリを指定。
- Finish
# 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