- PR -

Eclipse3.2 & WTP1.5 でサーバーが始動できなくなった

1
投稿者投稿内容
アレク
ベテラン
会議室デビュー日: 2002/10/23
投稿数: 97
投稿日時: 2007-04-27 22:01
Eclipse3.2 & WTP1.5 という環境で CVS から落とした古いプロジェクトを
起動させようとしたのですがうまくいかず、あれこれ試行錯誤している内に、
これまで正常に動いていた他のものまで起動できなくなってしまいました。

サーバーを始動させようとすると、
「サーバーTomcat v5.5 サーバー @ localhost は始動に失敗しました。」
とメッセージが表示され、コンソールには以下のエラーが吐き出されます。

コード:
2007/04/27 21:36:23 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
情報: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\\Development\\Java\\jdk1.5.0_08\\bin;.;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\PROGRA~1\\JUSTSY~1\\JSLIB32;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem
2007/04/27 21:36:23 org.apache.coyote.http11.Http11BaseProtocol init
情報: Coyote HTTP/1.1を http-8080 で初期化します
2007/04/27 21:36:23 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 797 ms
2007/04/27 21:36:23 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2007/04/27 21:36:23 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/5.5.20
2007/04/27 21:36:23 org.apache.catalina.core.StandardHost start
情報: XML検証は無効です
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.lang.NoSuchMethodError: org.apache.naming.NamingContextBindingsEnumeration.<init>(Ljava/util/Iterator;Ljavax/naming/Context;)V
	at org.apache.naming.resources.FileDirContext.listBindings(FileDirContext.java:337)
	at org.apache.naming.resources.ProxyDirContext.listBindings(ProxyDirContext.java:515)
	at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:142)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4059)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	... 6 more



Web で情報を検索したのですが、有益な情報が得られなかったので、
Tomcat や Eclipse の再インストールも試みましたが、
同様のエラーが表示されてしまって始動できません…。

プロジェクト自身に問題があるのかと思い、新規にテスト用のプロジェクト
を作成して、サーバーでの始動を試みましたが同様の結果でした。

workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
を削除するとサーバーの始動自体は出来るようになるのですが、
今度はプロジェクトが展開されないようで、やはりうまくいきません。

コード:
2007/04/27 21:50:10 org.apache.catalina.core.StandardContext resourcesStart
致命的: 静的リソースの起動中のエラーです
java.lang.IllegalArgumentException: ドキュメントベース C:\\Development\\Java\\Eclipse3.2\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\webapps\\Test が存在しない、又は読めないディレクトリです
	at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:140)
	at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:3848)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4019)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2007/04/27 21:50:10 org.apache.catalina.core.StandardContext start
致命的: Error in resourceStart()
2007/04/27 21:50:10 org.apache.catalina.core.StandardContext start
致命的: Error getConfigured
2007/04/27 21:50:10 org.apache.catalina.core.StandardContext start
致命的: 以前のエラーのためにコンテキストの起動が失敗しました [/Test]
2007/04/27 21:50:10 org.apache.catalina.core.StandardContext stop
情報: コンテナ org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Test] はまだ起動されていません
2007/04/27 21:50:10 org.apache.catalina.startup.HostConfig deployDirectory
致命的: Webアプリケーションディレクトリ ROOT を配備中のエラーです
java.lang.NoSuchMethodError: org.apache.naming.NamingContextEnumeration.<init>(Ljava/util/Iterator;)V
	at org.apache.naming.resources.FileDirContext.list(FileDirContext.java:310)
	at org.apache.naming.resources.ProxyDirContext.list(ProxyDirContext.java:481)
	at org.apache.catalina.startup.TldConfig.tldScanResourcePathsWebInf(TldConfig.java:632)
	at org.apache.catalina.startup.TldConfig.tldScanResourcePaths(TldConfig.java:601)
	at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:282)
	at org.apache.catalina.core.StandardContext.processTlds(StandardContext.java:4302)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4139)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2007/04/27 21:50:10 org.apache.coyote.http11.Http11BaseProtocol start
情報: Coyote HTTP/1.1を http-8080 で起動します
2007/04/27 21:50:10 org.apache.jk.common.ChannelSocket init
情報: JK: ajp13 listening on /0.0.0.0:8009
2007/04/27 21:50:10 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/62  config=null
2007/04/27 21:50:10 org.apache.catalina.storeconfig.StoreLoader load
情報: Find registry server-registry.xml at classpath resource
2007/04/27 21:50:11 org.apache.catalina.startup.Catalina start
情報: Server startup in 1156 ms



この問題の原因がどこにあるかお分かりでしたらご教授頂きたく存じます。
よろしくお願いいたします。
大ベテラン
会議室デビュー日: 2006/06/28
投稿数: 116
投稿日時: 2007-04-28 13:17
このような現象にあったことはありませんが、
java.lang.NoSuchMethodError
で完全に止まっているということから、ここが原因でしょうか。
どちらにも同じ例外が出ていることに気づかれていますでしょうか。
引用:

アレクさんの書き込み (2007-04-27 22:01) より:
コード:
2007/04/27 21:36:23 org.apache.catalina.core.StandardHost start
情報: XML検証は無効です
java.lang.reflect.InvocationTargetException
Caused by: java.lang.NoSuchMethodError: org.apache.naming.NamingContextBindingsEnumeration.<init>(Ljava/util/Iterator;Ljavax/naming/Context;)V
	at org.apache.naming.resources.FileDirContext.listBindings(FileDirContext.java:337)





引用:

コード:
2007/04/27 21:50:10 org.apache.catalina.startup.HostConfig deployDirectory
致命的: Webアプリケーションディレクトリ ROOT を配備中のエラーです
java.lang.NoSuchMethodError: org.apache.naming.NamingContextEnumeration.<init>(Ljava/util/Iterator;)V
	at org.apache.naming.resources.FileDirContext.list(FileDirContext.java:310)




です。
下のトレースはプロジェクトフォルダを削除して止まらなくなった結果という事ですが、たとえプロジェクトを読み込めたとしても
下のROOT配備中のエラーと同様にエラーが発生するはずです。
例外トレースから見るに、どうやら本来使用するはずの無いorg.apache.naming.NamingContextEnumerationが
使用されているようです。

Tomcatをインストールしても直らなかったということは、
Tomcatが本来使用するはずのorg.apache.naming.NamingContextEnumerationクラスの含まれたjarがロードされる前に、
別のバージョンのorg.apache.naming.NamingContextEnumerationクラスの含まれたjarがロードされるのでしょう。
Tomcat5.5では<InstallDir>/common/libにnaming-resources.jarがありますが、
クラスパスを確認して、naming-resources.jarが他の場所に無いか確認してみてください。
アレク
ベテラン
会議室デビュー日: 2002/10/23
投稿数: 97
投稿日時: 2007-04-28 14:47
暁様ありがとうございます。

ご指摘頂いた通り、NamingContextEnumeration クラスの含まれた別の jar ファイルが邪魔をしていました。

古いプロジェクトを動かす為 Tomcat/common/lib に jar を追加した際に、
誤って別バージョンの naming-resources.jar を追加してしまい、
その lib ディレクトリをインストールし直した Tomcat にそのまま上書きしていたので、
再インストールしても問題が解決しなかったようです。

別バージョンの jar を削除したところ、無事起動できるようになりました。

的確なご指導を頂き、誠にありがとうございました。
1

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