eclipseのファイルをvagrantのtomcat8.5にデプロイする

コマンドラインでtomcatを起動しておきます。
[vagrant@localhost tomcat]$ sudo /opt/tomcat/apache-tomcat-8.5.33/bin/shutdown.sh

elipseの対象パッケージからwar.fileをexportする。

war.fileをtomcatのwebapp配下に配置します。※ここはgitでいいでしょうね。
数秒するとwarから自動的にフォルダが生成されます。

eclipseからvagrantにデプロイできました。素晴らしい!

eclipseで利用するtomcatのバージョンとvagrantにインストールするtomcatのバージョンは合わせておく必要があります。さて、ではmysqlとの接続をやっていきたいですね。

vagrant上のtomcatでservletを動かしたい

まず、tomcatのフォルダにeclipseで作成したservletを置いてみる。

tomcat起動
sudo /opt/tomcat/apache-tomcat-8.5.33/bin/startup.sh

Type ステータスレポート
メッセージ /TodoServlet3/HelloServlet/
説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

あああ、tomcat 8だからかな~ 困った。

index.jspを作成する

index.jspファイルをつくります。なんだこれ、さすがに *.jsp は初めでだぞ。
つーか、なんだこれ、charsetがcharset=ISO-8859-1で、html4だ。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello, Java World!</title>
</head>
<body>
	<%= new java.util.Date() %>
</body>
</html>

JSPファイルはWebサーバ(ホームページのファイルを置くサーバ)上でお仕事をするJavaのプログラムで、HTMLファイルとJavaのプログラムが合体したもの

java server page そのままやんけ。
JSPファイルは基本的にはHTMLファイル
ただし、その中に、好きなようにJavaのコードを埋め込むことができる。

なるほど。
Java Servletが普通のJavaっぽい書き方になるのに対し、JSPファイルはPHPっぽい書き方になる。

なるほど、なるほど。

JSPファイルはjava servletに変換されるのね。

JSP Servletを動かそう

http://localhost:8080/TodoServlet3/HelloServlet

package todo.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

とりあえず、apache tomcatで動いています。
tomcatはJava Servletを動かすときに必要なソフト(サーブレットコンテナ)
chromeでも同じように動きます。

tomcatにデプロイ

[vagrant@localhost apache-tomcat-8.5.33]$ sudo chmod 777 webapps

デプロイとは、WebアプリケーションをWebコンテナにインストール
tomcatがインストールされているwebappsフォルダにwarファイルをコピーすると、アプリケーションが動作可能になる。

こりゃ素人には無理だな。ちゃんと勉強しないと、立ち行きできんわ。

centosにtomcatを入れる

/optにtomcatのディレクトリを作成します。

[vagrant@localhost opt]$ ls
VBoxGuestAdditions-5.1.26 chef gradle mono monodevelop
[vagrant@localhost opt]$ sudo mkdir tomcat
[vagrant@localhost opt]$ ls
VBoxGuestAdditions-5.1.26 chef gradle mono monodevelop tomcat

どうやら、v8.5.33が新しいそうなので、8.5.33をwgetします。
[vagrant@localhost tomcat]$ sudo wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-8/v8.5.33/bin/apache-tomcat-8.5.33.tar.gz
–2018-09-09 21:37:54– http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-8/v8.5.33/bin/apache-tomcat-8.5.33.tar.gz
ftp.meisei-u.ac.jp をDNSに問いあわせています… 160.194.204.25
ftp.meisei-u.ac.jp|160.194.204.25|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 9621331 (9.2M) [application/x-gzip]
`apache-tomcat-8.5.33.tar.gz’ に保存中

100%[======================================>] 9,621,331 175K/s 時間 37s

2018-09-09 21:38:31 (256 KB/s) – `apache-tomcat-8.5.33.tar.gz’ へ保存完了 [9621331/9621331]

[vagrant@localhost tomcat]$ ls
apache-tomcat-8.5.33.tar.gz

アーカイブファイルを展開する
[vagrant@localhost tomcat]$ sudo tar xvf apache-tomcat-8.5.33.tar.gz
[vagrant@localhost tomcat]$ ls
apache-tomcat-8.5.33 apache-tomcat-8.5.33.tar.gz

[vagrant@localhost ~]$ cd /etc/profile.d
[vagrant@localhost profile.d]$ ls
colorls.csh cvs.sh gnat-project.csh lang.csh less.sh which2.sh
colorls.sh glib2.csh gnat-project.sh lang.sh vim.csh
cvs.csh glib2.sh gradle.sh less.csh vim.sh
[vagrant@localhost profile.d]$ sudo vi tomcat.sh

これでいいのか??

JRE_HOME=/usr/bin/java
CATALINA_HOME=/opt/tomcat/apache-tomcat-8.5.33
export JRE_HOME CATALINA_HOME

うお、tomcat started.ってなってる!?
[vagrant@localhost apache-tomcat-8.5.33]$ sudo /opt/tomcat/apache-tomcat-8.5.33/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.5.33
Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.5.33
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.5.33/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/apache-tomcat-8.5.33/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.5.33/bin/tomcat-juli.jar
Tomcat started.

iptableのポート設定
[vagrant@localhost profile.d]$ iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT

うおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

怖くなったので、撤退
[vagrant@localhost profile.d]$ sudo /opt/tomcat/apache-tomcat-8.5.33/bin/shutdown.sh
Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.5.33
Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.5.33
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.5.33/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/apache-tomcat-8.5.33/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.5.33/bin/tomcat-juli.jar