- PR -

InvocationTargetExceptionの発生原因とは?

1
投稿者投稿内容
yoshika
常連さん
会議室デビュー日: 2005/10/31
投稿数: 28
投稿日時: 2006-11-22 09:45
お世話になります。

apache1.3.26 + tomcat3.3.1 のシステムでtomcatのみを停止・起動したときに
tomcatが正常に動作しない現象が現れました。
これまで数年は正常に起動していました。
apacheの再起動も同時に行うと正常に動作します。

起動時のログでは
- Ajp13Interceptor: Starting on 8009
に失敗し、(正常に起動した場合出力されるが、されていない)
java.lang.reflect.InvocationTargetException
が発生しているようです。
この原因はどのようなものが考えられるのでしょうか?

起動時のログの全文です。↓
Using classpath: /usr/local/tomcat/bin/../lib/tomcat.jar
Using JAVA_HOME: /usr/local/java
Using TOMCAT_HOME: /usr/local/tomcat
2006-11-21 21:19:57 - SessionIdGenerator: Opening /dev/urandom
2006-11-21 21:19:57 - ServerXmlReader: Config=$TOMCAT_HOME/conf/server.xml
2006-11-21 21:19:57 - PathSetter: home=/usr/local/tomcat
2006-11-21 21:19:57 - ContextXmlReader: Context config=$TOMCAT_HOME/conf/apps-127.0.0.1.xml
2006-11-21 21:19:57 - ContextXmlReader: Context config=$TOMCAT_HOME/conf/apps-admin.xml
2006-11-21 21:19:57 - ContextXmlReader: Context config=$TOMCAT_HOME/conf/apps-examples.xml
2006-11-21 21:19:57 - AutoWebApp: Auto-Adding DEFAULT:/
2006-11-21 21:19:57 - AutoWebApp: Auto-Adding DEFAULT:/ROOT.devel
2006-11-21 21:19:57 - ContextManager: Tomcat configured and in stable state
2006-11-21 21:19:57 - ContextManager: Adding DEFAULT:/admin
2006-11-21 21:19:57 - ContextManager: Adding DEFAULT:/examples
2006-11-21 21:19:57 - ContextManager: Adding DEFAULT:/ROOT
2006-11-21 21:19:57 - ContextManager: Adding DEFAULT:/ROOT.devel
EmbededTomcat: Init time 3291
2006-11-21 21:19:59 - Http10Interceptor: Starting on 8080
2006-11-21 21:19:59 - Ajp12Interceptor: Starting on 8007
Guessed home=/usr/local/tomcat
Exception: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException: org.apache.tomcat.core.TomcatException: Root cause - \¢\??????????????:8009
at org.apache.tomcat.modules.server.PoolTcpConnector.engineStart(PoolTcpConnector.java:132)
at org.apache.tomcat.core.ContextManager.start(ContextManager.java:639)
at org.apache.tomcat.startup.EmbededTomcat.start(EmbededTomcat.java:586)
at org.apache.tomcat.startup.EmbededTomcat.execute1(EmbededTomcat.java:710)
at org.apache.tomcat.startup.EmbededTomcat$1.run(EmbededTomcat.java:687)
at org.apache.tomcat.util.compat.Jdk12Support$PrivilegedProxy.run(Jdk12Support.java:190)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.tomcat.util.compat.Jdk12Support.doPrivileged(Jdk12Support.java:100)
at org.apache.tomcat.startup.EmbededTomcat.execute(EmbededTomcat.java:685)
at java.lang.reflect.Method.invoke(Native Method)
at org.apache.tomcat.util.IntrospectionUtils.execute(IntrospectionUtils.java:87)
at org.apache.tomcat.startup.Main.execute(Main.java:313)
at org.apache.tomcat.startup.Main.main(Main.java:140)
Root Exception: org.apache.tomcat.core.TomcatException: Root cause - \¢\??????????????:8009
org.apache.tomcat.core.TomcatException: Root cause - \¢\??????????????:8009
at org.apache.tomcat.modules.server.PoolTcpConnector.engineStart(PoolTcpConnector.java:132)
at org.apache.tomcat.core.ContextManager.start(ContextManager.java:639)
at org.apache.tomcat.startup.EmbededTomcat.start(EmbededTomcat.java:586)
at org.apache.tomcat.startup.EmbededTomcat.execute1(EmbededTomcat.java:710)
at org.apache.tomcat.startup.EmbededTomcat$1.run(EmbededTomcat.java:687)
at org.apache.tomcat.util.compat.Jdk12Support$PrivilegedProxy.run(Jdk12Support.java:190)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.tomcat.util.compat.Jdk12Support.doPrivileged(Jdk12Support.java:100)
at org.apache.tomcat.startup.EmbededTomcat.execute(EmbededTomcat.java:685)
at java.lang.reflect.Method.invoke(Native Method)
at org.apache.tomcat.util.IntrospectionUtils.execute(IntrospectionUtils.java:87)
at org.apache.tomcat.startup.Main.execute(Main.java:313)
at org.apache.tomcat.startup.Main.main(Main.java:140)

以上です。
どうぞよろしくお願いします。

nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-22 10:50
メッセージが文字化けしているのは難点ですね。

org.apache.tomcat.core.TomcatException: Root cause - \¢\??????????????:8009
あたりから察するにポートを開くのに失敗したのではないでしょうか。
8009というとApache-Tomcat間の接続に使われているポートですよね。
私は低レベルでのTCP/IPの実装がどうなっているかについては無知なので
切断した時点で綺麗に片付かない理由がよくわかりませんが。

InvocationTargetException自身にはあまり意味はありません。
リフレクション機能を使ってメソッド呼び出しを間接的に
行っている場合に読んだ先のメソッドで例外が発生した場合にthrowされます。
InvocationTargetException.getCause()で取得できるThrowableこそが
本当の原因になります。
スタックトレースにはcaused by 〜と表示される奴ですね。
yoshika
常連さん
会議室デビュー日: 2005/10/31
投稿数: 28
投稿日時: 2006-11-22 11:26
apacheとtomcatの連携ポートなんですね。
Root causeのつづきが見られれば・・

apacheとtomcatの起動を行う場合、tomcat→apache の順に起動するのが
正しいと思うのですが、tomcatのみを再起動した場合、
実行済みapache→tomcat停止→tomcat起動 となってしまいます。

やはりこのあたりがよくないのでしょうか。
ただし、そうとするとこれまで問題なく起動していたことがわかりませんが・・
1

スキルアップ/キャリアアップ(JOB@IT)