tomcatのアプリを移行
なんだかみんなから忘れられていて移行作業リストから抜けていたアプリがありました。tomcat4で動作しているなんでもない検索システム。
しょうがないので、自力で移行。まぁなんとかなるだろうってやっちゃうから全部自分がひっかぶっちゃうんだよ。
jdkをインストール
yumでjdkをインストール。yum list | grep jdk ってやると1.6と1.7があるみたい。
# yum list | grep jdk Unable to read consumer identity java-1.6.0-openjdk.x86_64 1:1.6.0.0-1.48.1.11.3.el6_2 java-1.7.0-openjdk.x86_64 1:1.7.0.9-2.3.3.el6_3.1 java-1.7.0-openjdk-devel.x86_64 1:1.7.0.9-2.3.3.el6_3.1 java-1.6.0-openjdk.x86_64 1:1.6.0.0-1.50.1.11.5.el6_3 java-1.6.0-openjdk-devel.x86_64 1:1.6.0.0-1.50.1.11.5.el6_3 java-1.6.0-openjdk-javadoc.x86_64 1:1.6.0.0-1.50.1.11.5.el6_3 ldapjdk.x86_64 4.18-6.el6 rhel-x86_64
ソフトウェアパッケージと畳は新しい方がいいらしいので1,7をインストール。
# yum install java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-devel.x86_64
tomcatをインストール
これもyum listで探してみる。なんかいっぱい出てくるな。
# yum list | grep tomcat Unable to read consumer identity jakarta-commons-dbcp-tomcat5.noarch 1.2.1-13.8.el6 @rhel-x86_64-server-6 jakarta-commons-pool-tomcat5.x86_64 1.3-12.7.el6 @rhel-x86_64-server-6 tomcat6.noarch 6.0.24-45.el6 @rhel-x86_64-server-6 tomcat6-el-2.1-api.noarch 6.0.24-45.el6 @rhel-x86_64-server-6 tomcat6-jsp-2.1-api.noarch 6.0.24-45.el6 @rhel-x86_64-server-6 tomcat6-lib.noarch 6.0.24-45.el6 @rhel-x86_64-server-6 tomcat6-servlet-2.5-api.noarch 6.0.24-45.el6 @rhel-x86_64-server-6 apache-tomcat-apis.noarch 0.1-1.el6 rhel-x86_64-server-6 tomcatjss.noarch 2.1.0-2.el6 rhel-x86_64-server-6
よくわからんが適当にインストール。たくさん入れとく分にはわるくないだろう。
# yum instal \ jakarta-commons-dbcp-tomcat5.noarch 0:1.2.1-13.8.el6 \ jakarta-commons-pool-tomcat5.x86_64 0:1.3-12.7.el6 \ tomcat6.noarch 0:6.0.24-45.el6 \ tomcat6-el-2.1-api.noarch 0:6.0.24-45.el6 \ tomcat6-jsp-2.1-api.noarch 0:6.0.24-45.el6 \ tomcat6-lib.noarch 0:6.0.24-45.el6 \ tomcat6-servlet-2.5-api.noarch 0:6.0.24-45.el6 \
dependencyで70個以上のパッケージが入ったよ。tomcat自体は/usr/shaer/tomcat6に入りました。
Oracleのjdbcドライバをインストール
なんだかOracleにもアタッチするらしい。jdbcをインストール。ここにものがあるのでダウンロード。jdk1.6用って書いてあるけど、大丈夫だろう。
展開したojdbc6.jarを/usr/share/javaにコピーして、/usr/share/java/tomcat6へリンクする。
アプリ自体をコピー
元の環境のwebapp以下を新しい環境の$CATALINA/webapps以下へコピー。
tomcatのlistenポート調整
デフォルトでtomcatがlistenするTCP/8080はすでに使われているので9090へ変更。
conf/server.xmlを編集します。
<Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
invokerを有効化
tomcat6はデフォルトでinvokerが無効になっているのでこれを有効化する。
ところでinvokerってなに?
知らなくてもアプリ移行はできるよ!
編集するファイルは二つ。conf/web.xmlとconf/context.xml。
conf/web.xmlで
conf/context.xmlで
アプリの情報を変更
アプリケーションの配置場所が変わったので、その情報を持っていると思われるファイルを編集。今回移行したアプリでは webapps/hogehoge/WEB-INF/classes/hogehoge/common/util/hogehoge.propertiesってところに情報がありました。
こうやって探しましたよ。
# find . -type f -exec fgrep 'なにか特定できる文字列' {} /dev/null \;
このアプリの場合はログファイルの場所、セッションを保存するファイルの場所、jdbcへ渡す接続情報などなどがここにかかれていました。
tomcatを再起動
# /etc/init.d/tomcat6 start