2011-12-20 13 views
7

私のTomcat環境で設定の問題を追跡しようとしています。私たちのプロダクションサーバーは、Tomcatのインストールを実行しており、共有NFSマウントから戦争を読み込んでいます。Tomcat 6がWEB-INF/libのjarsをロードしていません

しかし、スタンドアローンボックス(設定あり)で同じ戦争を試みると、以下のようなエラーが表示されます。

興味深いことに、WEB-INF/libのすべてのjarファイルをWEB-INF/classesに解凍すると、このエラーはなくなります。

アプリのWEB-INF/libパスの読み込みをアプリが妨げているようですが、私の人生にとっては、アプリケーションを検出しているため、これを引き起こすような設定を見つけることができません。構成、含まれているジャーだけではありません。

アイデア?

SEVERE:クラス org.springframework.web.context.ContextLoaderListener のエラー設定アプリケーションのリスナーにjava.lang.ClassNotFoundException:org.apache.catalina.loaderで org.springframework.web.context.ContextLoaderListener .WebappClassLoader.loadClass(WebappClassLoader.java:1387)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)で org.apache.catalina.core.StandardContext.listenerStartで (StandardContext.java:3786 ) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) at org.apache.catalinコンテナベース.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost。 org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) (org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) ) (HostConfig.java:1149) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:1149) でのorg.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apa org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ja):(org.apache.catalina.core.StandardHost.start(StandardHost.java:719)) でorg.apache.catalina.core.ContainerBase.start ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org。 (元のメソッド) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Dele gatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache。 catalina.startup.Bootstrap.main(Bootstrap.java:413)Dec 20、 2011 4:20:38 PM org.apache.catalina.core.StandardContext listenerStart SEVERE:クラスのアプリケーションリスナーを設定中にエラーが発生しました org.springframework.security .web.session.HttpSessionEventPublisher java.lang.ClassNotFoundException: org。org.apache.catalina.loader.WebappClassLoader.loadClassでorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) でspringframework.security.web.session.HttpSessionEventPublisher (WebappClassLoader.java:1233) org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) at org.apache.catalina.core.ContainerBase .addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) at org.apache.catalina.startup。 (HostConfig.java:311) (org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core。 ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) でorg.apache.catalina.core.StandardService.start(StandardService.java:516) でorg.apache.catalina.core.StandardServer.start(StandardServer.java:710) でorg.apache.catalina.startup。 sun.reflect.DelegatingMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でCatalina.start(Catalina.java:578) (DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Mava.subscription .startup.Bootstrap.main(Bootstrap.java:413)

+3

jarファイルはシンボリックリンクで参照されていますか?デフォルトでは、Tomcatはシンボリックリンクに従いません。 – fge

+0

いいえ、メインwebappはdeployフォルダにシンボリックリンクされていますが、アプリ全体を入れてもこのエラーは発生します。 – liam

+2

私はWEB-INF/libのjarを意味しました。私はこのエラーによってTomcatを正しく設定することに非常に気を遣っていました...。 – fge

答えて

2

私はまだ理由がありませんなぜこれは起こっていますが、私はついにそれを働かせることができました。通常、warを展開ディレクトリに展開するには、「unzip」を使用します。私はそれを 'jar'を使うように切り替えた。すべてが魔法のように動作する。

私にははありません。アイデアがあるのはなぜですか。私は他のすべての順列(配備フォルダ、シンボリックリンク、パーミッション、所有権など)を試してみましたが、これはというものでした。違いは同じですが、2つの解凍されたフォルダは同じパーミッションで、 1人が働いていて、1人は働いていませんでした

また、プロダクションデプロイメントは何年もの間「解凍」しています。私は本当にこれを理解することはできませんが、私は少なくとも何か他のものに取り組むことができてうれしいです。

2

注意しておきたいことですが、ClassNotFoundExceptionは、リストされたクラス(あなたの場合はorg.springframework.web.context.ContextLoaderListener)が見つからないことを意味するとは限りません。クラスをロードできなかった可能性があります。

特定のクラスが何らかの理由で読み込まれなかった場合、見つからない別のクラスを参照する静的ブロックがあると、クラスローダーは "ClassNotFoundException"として読み込みに失敗すると報告します。

WEB-INF/libディレクトリに、Tomcatのデフォルトライブラリにも存在するクラス/ jarが含まれていないことを確認してください。これにより、複数のバージョンが存在する場合、ロード障害が発生することがあります。 jarファイルをclassesディレクトリに解凍すると、クラスがパス順に移動している可能性があります。

+0

ありがとうございましたが、回避策はさらに奇妙になりました。 – liam

関連する問題