cloud9 で Tomcat を動かす

https://c9.io/ を使ってみた

1. c9 (cloud9) はクラウドの開発環境
2. Ubuntu 仮想マシンをオンラインで使わせてくれる

# まずは様子見

1. Dashboard から Create a new workspace
![Screen Shot 2016-07-15 at 01.34.59.png](https://qiita-image-store.s3.amazonaws.com/0/131106/1ff4e3bd-4e43-b624-386c-2f1b419c18cb.png)

2. Blank を選んで Create workspace
![Screen Shot 2016-07-15 at 01.36.34.png](https://qiita-image-store.s3.amazonaws.com/0/131106/6f52746c-d56e-faa9-fd14-17fac4afa6f7.png)

3. 30 秒弱でプロジェクト作成完了![Screen Shot 2016-07-15 at 01.38.08.png](https://qiita-image-store.s3.amazonaws.com/0/131106/8ba162a8-14c8-bd0e-76f3-020d5e9a7ae4.png)

    1. Dashboard に戻ると 1 CPU, 512MB RAM, 2GB HDD で作られてる事が確認出来る

4. 左のペーンで右クリックして Open Terminal Here
![Screen Shot 2016-07-15 at 01.39.35.png](https://qiita-image-store.s3.amazonaws.com/0/131106/e98600da-9775-ec9d-27f0-21c1c4ca1699.png)
    1. CTRL-C を使える
    2. CTRL-A, CTRL-E で行頭, 行末へ移動できる
    2. 矢印キーでコマンド履歴が使える
    3. Mac: Command+C, Command+V でコピペできる
    3. Mac: Command+K でスクリーンをクリアできる

5. 環境を確認
![Screen Shot 2016-07-15 at 01.41.53.png](https://qiita-image-store.s3.amazonaws.com/0/131106/457869dc-df73-ede0-480e-2e1987b2f7ad.png)

    1. Ubuntu 14.04 LTS ( 2.5 ヶ月前にリリースされた 16.04 LTS になってない）
    2. gcc 4.8.4
    3. java 1.7.0_101 (JDK は入ってない）
    4. ```sudo apt-get update``` しても何も更新されない

# Tomcat を動かしてみる

1. Oracle JDK を展開

		wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"  http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-i586.tar.gz
		tar xzf jdk-8u92-linux-i586.tar.gz

    1. ```sudo apt-get install openjdk-8-jdk``` だと ```E: Unable to locate package``` エラー
    2. ```sudo apt-get install default-jdk``` だと openjdk-7-jdk がインストールされる

2. Java 環境変数を設定

		export JAVA_HOME=/home/ubuntu/workspace/jdk1.8.0_92
		export PATH=$JAVA_HOME/bin:$PATH

2. Tomcat を展開

		wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.4/bin/apache-tomcat-8.5.4.tar.gz
		tar xzf apache-tomcat-8.5.4.tar.gz 

3. Tomcat を起動

		apache-tomcat-8.5.4/bin/startup.sh 

4. Preview メニューから Preview Running Application

![Screen Shot 2016-07-15 at 02.23.04.png](https://qiita-image-store.s3.amazonaws.com/0/131106/cf066e02-7430-8432-b60d-10fd3309bd8f.png)

  1. Tomcat が動いているのが見れる
  2. https://tomcat-ken1ma.c9users.io/ などの URL にブラウザでアクセスできる
    1. Tomcat は 8080 ポートで動いているし conf/server.xml で SSL はコメントアウトされているのに https アクセス


# 簡単な Servlet を動かしてみる

1. ディレクトリと web.xml を作成

		cd apache-tomcat-8.5.4/webapps
		mkdir -p myapp/WEB-INF/classes/mypackage
		vi myapp/WEB-INF/web.xml

2. web.xml の中身

		<?xml version="1.0" encoding="ISO-8859-1"?>
		<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_1.xsd"
			version="3.1">

			<servlet>
				<servlet-name>HelloServlet</servlet-name>
				<servlet-class>mypackage.HelloServlet</servlet-class>
			</servlet>

			<servlet-mapping>
				<servlet-name>HelloServlet</servlet-name>
				<url-pattern>/hello</url-pattern>
			</servlet-mapping>

		</web-app>

3. java ファイルを作成

		cd myapp/WEB-INF/classes/mypackage
		vi HelloServlet.java

4. java ファイルの中身

		package mypackage;

		import java.io.*;
		import javax.servlet.*;
		import javax.servlet.http.*;

		public class HelloServlet extends HttpServlet {
				@Override public void doGet(HttpServletRequest req, HttpServletResponse resp)
								throws ServletException, IOException {
						resp.setContentType("text/plain; charset=UTF-8");
						resp.getWriter().write("Hello 世界");
				}
		}

5. コンパイル

		javac -cp ../../../../../lib/servlet-api.jar HelloServlet.java

6. これでブラウザでアクセスすると ```Hello 世界``` と表示された
  1. 日本語が使えてる