- - PR -
InvocationTargetExceptionの発生原因とは?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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) 以上です。 どうぞよろしくお願いします。 |
|
投稿日時: 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 〜と表示される奴ですね。 |
|
投稿日時: 2006-11-22 11:26
apacheとtomcatの連携ポートなんですね。
Root causeのつづきが見られれば・・ apacheとtomcatの起動を行う場合、tomcat→apache の順に起動するのが 正しいと思うのですが、tomcatのみを再起動した場合、 実行済みapache→tomcat停止→tomcat起動 となってしまいます。 やはりこのあたりがよくないのでしょうか。 ただし、そうとするとこれまで問題なく起動していたことがわかりませんが・・ |
1