2012-09-04 40 views
7

Tomcat 7.0.29に戦争を展開しようとしています。Tomcat 7で戦争を展開するときの無限ループ

GRAVE: Error waiting for multi-thread deployment of context descriptors to complete 
java.util.concurrent.ExecutionException: java.lang.StackOverflowError 
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:83) 
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:574) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1413) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:346) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:785) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.StackOverflowError 
    at java.util.HashSet.<init>(HashSet.java:86) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2208) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2227) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2227) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2227) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2227) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2227) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2227) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2227) 

(ommited多くのスタック・フレーム...)

は誰もが同じ問題に直面しています:私は、次のログのスタックを持っていますか?

+0

web.xmlのコンテンツを投稿できますか? – Dan

+2

https://issues.apache.org/bugzilla/show_bug.cgi?id=53871を参照してください。 –

答えて

2

Tomcat 7.0でもこの問題が発生しています。 およびTomcat 7.0。 。しかし、Tomcat 7.0。 すべて正常に動作するので、最近導入されたTomcatの問題と思われます。

7.0でエラーが発生しました。 および7.0。 、Tomcatを起動し、warファイルの展開:回避策を

14:01:06,380 ERROR [HostConfig:576] Error waiting for multi-thread deployment of context descriptors to complete java.util.concurrent.ExecutionException: java.lang.StackOverflowError 
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:111) 
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:574) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1413) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:346) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:785) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.StackOverflowError 
    at java.util.HashSet.<init>(HashSet.java:103) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2243) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2260) 
    at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2260) 
1

を:私はWARの名前変更(のpom.xmlで無finalNameをし、成果物のバージョンを変更し)、それが働きました。.. .. なぜ?私は今まで知らない!

本当の、真の解決策ですか?間違いなく新しいTomcatリリース。 。 。

1

この現象は、アプリケーションコンテキストを.pomファイルのMaven atrifactIdと同じ名前に設定するとIntelliJ Ideaで再現されました。 など。私のartifactIdは「テスト」です。次に、アプリケーションコンテキスト(設定の編集 - > Tomcatサーバー - >展開、分解されたアーティファクトを選択)を「/ test」に設定します。アプリケーションコンテキストを変更するとすぐにすべてが機能しました。

4

これは、Tomcatの問題#53871としてアップストリームに報告されています。この問題は注釈のスキャンによるようで、Tomcat 7.0.38にはより明確なエラーメッセージが含まれています。ため、私はバージョン1がBと別のバージョンから継承したクラスAが含まれて図書館の異なるバージョンを含む2つのJARファイルを含むWARファイルを展開し、依存関係の管理の問題に

:バグ報告から

Aを継承するクラスBを含んでいました。 クラスは、継承ツリーのサイクルを検出しないため、populateSCIsForCacheEntryでスタックオーバーフローを引き起こすAとBが循環的に継承される順序でロードされました。

これはまさに私の場合は問題だった:jaxenの互換性のないバージョンを同梱dom4jの古いバージョン。 7.0.38の新しいエラー診断では、どのクラスがループを形成したかを正確に示し、それらの依存性をアップグレードすることで修正しました。

1

Tomcatの下位バージョンを使用してください。あなたが使用しているTomcatのバージョンに問題があります。

1

私は同じ問題を抱えていました。私はそれがTomcat 7によって引き起こされたと思うので、Tomcat 6.0.35に変更したとき、問題は魅力のように解決されました。

関連する問題