今更ながら、CentOS7
にtomcat7
をインストールして確認するメモです。
Tomcat7のインストール
yumでそのまま入る。
yum update
yum install tomcat*
tomcat version
systemd start tomcat
systemd status tomcat
curl -v localhost:8080
起動しない場合は、JAVA_OPTSを設定する。
vi /etc/tomcat/tomcat.conf
# 以下を追加
JAVA_OPTS="-Xmx512m -XX:MaxPermSize=256m"
Javaのインストール(Tomcat7は、6以上ならOK)
JRE1.8は自動で入る。そのため、1.8でコンパイルしたものは、そのまま動く。
使いたいバージョンのJDKがある場合は指定して入れる。
yum install java-1.6.0-openjdk-devel
java -version
javac -version
# 必要に応じてalternativesで設定
systemd restart tomcat
curl -v localhost:8080
servletの動作確認
cat > HelloServlet.java << EOF
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void service(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out = res.getWriter();
out.println("Hello World!");
}
}
EOF
javac -classpath '/usr/share/tomcat/lib/*' HelloServlet.java
mkdir -p /usr/share/tomcat/webapps/ROOT/WEB-INF/classes
cp HelloServlet.class /usr/share/tomcat/webapps/ROOT/WEB-INF/classes/.
cat > /usr/share/tomcat/webapps/ROOT/WEB-INF/web.xml <<EOF
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
EOF
systemctl restart tomcat
curl -v localhost:8080/HelloServlet
Contextの設定と確認
cat > /etc/tomcat/Catalina/localhost/mycontext.xml <<EOF
<Context path="/mycontext" docBase="/tmp/mycontext" workDir="/tmp/mycontext/work" />
EOF
mkdir -p /tmp/mycontext/WEB-INF/classes
cp HelloServlet.class /tmp/mycontext/WEB-INF/classes/.
cp /usr/share/tomcat/webapps/ROOT/WEB-INF/web.xml /tmp/mycontext/WEB-INF/.
curl -v localhost:8080/mycontext/HelloServlet
firewallの設定をする
- クラウドならば、Security Groupなどを設定
- インスタンスのfirewallを開く(CentOS7はfirewalld)
- 外部からアクセスできるようにする場合は注意
トラブルシューティング
500系エラー
- ログを見て対処。
- ClassNotFound系は、classファイルの設置場所が正しいか確認。
400系エラー
- web.xmlの指定が正しいか確認。
- web.xmlの設定が壊れている場合は、どこをたたいても400系エラーが出る。
0 件のコメント:
コメントを投稿