LoginSignup
10
8

More than 5 years have passed since last update.

[初メモ] はじめての Tomcat 〜 つまづいたところまとめ (Java のバージョン指定、起動パラメータ など)

Last updated at Posted at 2015-05-13

こんにちは、cloudpack@dz_ こと大平かづみです。

Prologue - はじめに

前回 の過程で Zabbix で jmx監視を試したかったので、Tomcat の環境を作っています。その際につまづいたことについてのメモです。

動作環境

Webサーバー

  • CentOS 6.6
  • Apache Tomcat6 (6.0.24)
  • Java 1.5.0 or 1.8.0

tomcat の最新バージョンは 8 ですが、諸事情により tomcat6 で環境作っています。

開発環境

  • Windows Server 2012 R2
  • Apache Tomcat6 (6.0.43)
  • Java 1.8.0
  • Netbeans 8.0.2

つまづいたところ (開発環境編)

Netbeans で Tomcat を扱いたい場合の対処

現象・原因

最近の NetBeans では、Tomcat のアプリケーションを作成するには、プラグインでインストールすることになっていました。また、Netbeans は、Windows 版も Mac 版も提供されており、どちらもこのプラグインが必要でした。

尚、Tomcat は別途インストール済みです。

対処

Tomcat アプリケーションを含む、 Java EE Base プラグインをインストールします。

Tools > Plugins を選択します。
20150513_netbeans_001.png

tomcat か Java EE Base を検索し、インストールします。
20150513_netbeans_002.png

依存でインストールされるプラグインを確認し、次へ進みます。
20150513_netbeans_003.png

Netbeans IDE をすぐに再起動するかどうかを選択し、完了します。
20150513_netbeans_004.png

これで、プロジェクト作成時に Web Application が選択できるようになります。
20150513_netbeans-tomcat_005.png

つまづいたところ (Webサーバー編)

warのデプロイはできたのに動作しない場合の対処

現象

Tomcat Manager を利用して、 war をデプロイしました。ところが、デプロイ時はエラーが出ないのですが、Applications 一覧に表示されないし、URL直接指定してもエラーが発生します。

そこで、ログファイルを確認すると以下のようなエラーが出ていました。

/var/log/tomcat6/catalina.out
...
SEVERE: Error deploying web application archive WebApplication1.war
java.lang.NullPointerException
   at sun.reflect.annotation.AnnotationInvocationHandler.create(libgcj.so.10)
...

原因

開発環境と、Webサーバーの Java のバージョンが違いました。
Tomcat Manager を使っていれば、管理画面の下に環境が表示されます。(ぼーっと両方の管理画面眺めていたら気付きましたw)

URL: http://:8080/manager/html
20150513_tomcat_001.png

対処

alternatives というコマンドを使って java のバージョンを選択できるので、これで対応しました。

# alternatives で 利用する Java のバージョンを確認、選択
alternatives --config java

以下のように表示され、 + が付いてる方が現在使われているバージョンです。そのままでよければ何も入力せず Enter 、変更したければその番号を入力します。

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
 + 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.45-28.b13.el6_6.x86_64/jre/bin/java
*  2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Enter to keep the current selection[+], or type selection number: 

service tomcat6 restart で再起動すると管理画面にデプロイしたアプリケーションが表示され、アプリケーションの動作も確認できました。

ちなみに、Tomcat で利用するJavaのバージョンを指定するのは、後述する設定ファイルでも設定できるようです。( JAVA_HOME を指定?)

javaの起動パラメータを指定したい場合の対処

現象

いろいろ調べたことを参考に、 $CATALINA_HOME/bin/setenv.sh を作成しましたが。反映されません。

原因

どうやら、今回の環境では /etc/tomcat6/tomcat6.conf が設定ファイルでした。

対処

tomcat6.conf に記載し、 service tomcat6 restart で反映されることが確認できました。

ちなみに、私の場合は jmxremote の設定をしたかったので、以下を追記しました。

/etc/tomcat6/tomcat6.conf
# 以下を追記
JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

Epilogue - おわりに

日進月歩ですが、実験環境ができつつあります。次は Zabbix の jmx監視についてメモをまとめるつもりです。いつになるやら?がんばります!

近況

最近

Phalcon関連

fluentd関連

Amazon ECS関連

技術ブログ寄稿

cloudpack技術ブログでも、AWS Lambda や 運用ツール Serf に関して記事を書いています。ご興味あれば読んでいただけると嬉しいです!

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8