CentOS 5
Sponsored Link

JAVAアプリケーションサーバー - Tomcat 62008/08/31

 
Tomcat 6 を導入し、JAVAアプリケーションをサーバー側で実行できる環境を整えます。 JAVA実行環境, ならびに Webサーバーをインストールしていることを前提としてすすめていきます。
[1] Tomcat 6のインストールと設定です。wgetでとってくる際には こちらより最新のものを確認後、 取得してください。
[root@www ~]#
wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.tar.gz

[root@www ~]#
tar zxvf apache-tomcat-6.0.32.tar.gz

[root@www ~]#
mv apache-tomcat-6.0.32 /usr/tomcat6

[root@www ~]#
useradd -d /usr/tomcat6 tomcat

useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@www ~]#
chown -R tomcat. /usr/tomcat6
[2] 起動スクリプトを作成しておきます。
[root@www ~]#
vi /etc/rc.d/init.d/tomcat6
#!/bin/bash

# Tomcat6: Start/Stop Tomcat 6
#
# chkconfig: - 90 10
# description: Tomcat is a Java application Server.

. /etc/init.d/functions
. /etc/sysconfig/network

CATALINA_HOME=/usr/tomcat6
TOMCAT_USER=tomcat
LOCKFILE=/var/lock/subsys/tomcat

RETVAL=0
start(){
   echo "Starting Tomcat6: "
   su - $TOMCAT_USER -c "$CATALINA_HOME/bin/startup.sh"
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch $LOCKFILE
   return $RETVAL
}

stop(){
   echo "Shutting down Tomcat6: "
   $CATALINA_HOME/bin/shutdown.sh
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
   return $RETVAL
}

case "$1" in
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      ;;
   status)
      status tomcat
      ;;
   *)
      echo $"Usage: $0 {start|stop|restart|status}"
      exit 1
      ;;
esac
exit $?

[root@www ~]#
chmod 755 /etc/rc.d/init.d/tomcat6

[root@www ~]#
/etc/rc.d/init.d/tomcat6 start

Starting Tomcat6:
Using CATALINA_BASE:     /usr/tomcat6
Using CATALINA_HOME:     /usr/tomcat6
Using CATALINA_TMPDIR:     /usr/tomcat6/temp
Using JRE_HOME:     /usr/java/default
Using CLASSPATH:     /usr/tomcat6/bin/bootstrap.jar
[root@www ~]#
chkconfig --add tomcat6

[root@www ~]#
chkconfig tomcat6 on
[3] Webブラウザで「http://(サーバー名またはIPアドレス):8080/」にアクセスして、 以下のような Tomcat のページが表示されることを確認してください。
[4] URLに8080を指定しなくてもアクセスできるように設定しておきます。
[root@www ~]#
vi /etc/httpd/conf.d/proxy_ajp.conf
# 最終行に追記

ProxyPass /tomcat/ ajp://localhost:8009/
[root@www ~]#
/etc/rc.d/init.d/httpd restart

Stopping httpd:     [  OK  ]
Starting httpd:     [  OK  ]
[5]
Webブラウザで「http://(サーバー名またはIPアドレス)/tomcat/」にアクセスして、 [3] の Tomcat のページが表示されることを確認してください。
[6] 現在の日時を表示するテストサーブレットを作成して動作を確認してみます。
[root@www ~]#
mkdir /usr/tomcat6/webapps/ROOT/WEB-INF/classes

[root@www ~]#
chown tomcat. /usr/tomcat6/webapps/ROOT/WEB-INF/classes

[root@www ~]#
cd /usr/tomcat6/webapps/ROOT/WEB-INF/classes

[root@www classes]#
vi daytime.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Calendar;

public class daytime extends HttpServlet {
   public void doGet(HttpServletRequest request
      ,HttpServletResponse response)

   throws IOException, ServletException{
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
      Calendar cal = Calendar.getInstance();
      out.println("<html>");
      out.println("<head>");
      out.println("<title>DayTime</title>");
      out.println("</head>");
      out.println("<body>");
      out.println("<div style=\"font-size: 40px; text-align: center; font-weight: bold\">");
      out.println(cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE) + " " + cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE));
      out.println("</div>");
      out.println("</body>");
      out.println("</html>");
   }
}

[root@www classes]#
javac -classpath /usr/tomcat6/lib/servlet-api.jar daytime.java

[root@www classes]#
vi /usr/tomcat6/webapps/ROOT/WEB-INF/web.xml
# 以下を<web-app> - </web-app>の間の適当なところへ追記

<servlet>
   <servlet-name>daytime</servlet-name>
   <servlet-class>daytime</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>daytime</servlet-name>
   <url-pattern>/daytime</url-pattern>
</servlet-mapping>

[7] Webブラウザで「http://(サーバー名またはIPアドレス)/tomcat/daytime」にアクセスして、 以下のようなページが表示されることを確認してください。
関連コンテンツ