Amazon linuxの場合、
yum install tomcat7
みたいな感じでサクッとインストールが出来ます。
インストールされるTomcatのバージョンは
7.0.57
CentOS6にも同じようにしてTomcat7をインストールしましょう。
Java8インストール
yum -y install java-1.8.0-openjdk-devel
Tomcat7インストール
yum -y install yum-plugin-priorities rpm -Uvh http://mirrors.dotsrc.org/jpackage/6.0/generic/free/RPMS/jpackage-release-6-3.jpp6.noarch.rpm vim /etc/yum.repos.d/jpackage.repo gpgcheck=1 ↓ gpgcheck=0 yum install tomcat7-webapps
インストールされるTomcatのバージョンは
7.0.54
JDBCドライバのパスを通す
ln -s /usr/share/java/mysql-connector-java.jar /usr/share/tomcat7/lib/ ln -s /usr/share/java/postgresql-jdbc3.jar /usr/share/tomcat7/lib/
設定の調整
Javaのバージョンを共生させる場合はJAVA_HOME,CLASSPATHを指定しておきます。
# vim /etc/tomcat7/tomcat7.conf JAVA_HOME="/usr/lib/jvm/java-1.8.0" CLASSPATH=".:/usr/lib/jvm/java-1.8.0/jre/lib:/usr/lib/jvm/java-1.8.0/lib:/usr/lib/jvm/java-1.8.0/lib/tools.jar"
Tomcat7を起動させてプロセスを確認してみると以下の様なエラーが出ました。
/usr/bin/build-classpath: error: JAVAVER_LIBDIR /usr/share/java- does not exist or is not a directory
Javaのバージョンがうまく取れてなくてパスが生成できてないっぽいです。
応急処置的に適当にフォルダを作ってしまいます。
mkdir /usr/share/java- mkdir /usr/lib/java-
次にエラーログに次のようなエラーが出ました。
Stacktrace:] with root cause org.apache.jasper.JasperException: JSPのクラスをコンパイルできません:
いろいろ調べてみたところ、 Tomcat 7.0.54ではecjのバージョンを4系にする必要があるようでした。
# cd /usr/share/tomcat7/lib/ # wget http://central.maven.org/maven2/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4.jar
http://stackoverflow.com/questions/19243458/tomcat7-not-compiling-jsp-examples
https://github.com/komarevsky/spring-petclinic/commit/ddc89639e0a61baceb6c12e6b87f7ca22bfa4007
- https://bugzilla.redhat.com/show_bug.cgi?id=1080026
- https://bugzilla.redhat.com/show_bug.cgi?id=1080026
- http://tomcat.apache.org/tomcat-7.0-doc/RELEASE-NOTES.txt
- https://issues.apache.org/bugzilla/show_bug.cgi?id=56283
- http://stackoverflow.com/questions/6780639/how-to-change-tomcat-compiler