2016-05-25 19 views
1

で開始しませんSTS 3.7.3jdk 1.8を使用してテンプレートSpring MVC project templateを作成しました。Tomcat 8.0は純粋なSpring MVCテンプレート

STS 3.7.3で提供されたPivotal tc Server Developer Editionで生成コードを実行します。サーバーが起動し、アプリケーションがデプロイされ、Hello worldページが表示されます。私は(任意の展開のアプリなしで正常に起動)tomcat 8.0サーバーを追加して、正確に同じアプリケーションをデプロイするために起動したときに

は、しかし、私が手:私は問題を読んだものから、

SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/core]] 
    at java.util.concurrent.FutureTask.report(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/core]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) 
    ... 6 more 
Caused by: java.lang.NullPointerException 
    at org.apache.jasper.servlet.TldScanner$TldScannerCallback.scanWebInfClasses(TldScanner.java:401) 
    at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:208) 
    at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) 
    at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:106) 
    at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:103) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5261) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    ... 6 more 

maj 25, 2016 2:36:25 PM org.apache.catalina.core.ContainerBase startInternal 
SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] 
    at java.util.concurrent.FutureTask.report(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:629) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.catalina.LifecycleException: A child container failed during start 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    ... 6 more 

maj 25, 2016 2:36:25 PM org.apache.catalina.startup.Catalina start 
SEVERE: The required Server component failed to start so Tomcat is unable to start. 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:629) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    ... 7 more 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    ... 9 more 
Caused by: org.apache.catalina.LifecycleException: A child container failed during start 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    ... 11 more 

maj 25, 2016 2:36:25 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["http-nio-8080"] 
maj 25, 2016 2:36:25 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["ajp-nio-8009"] 
maj 25, 2016 2:36:25 PM org.apache.catalina.core.StandardService stopInternal 
INFO: Stopping service Catalina 
maj 25, 2016 2:36:25 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["http-nio-8080"] 
maj 25, 2016 2:36:25 PM org.apache.coyote.AbstractProtocol destroy 
SEVERE: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"] 
java.lang.NullPointerException 
    at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316) 
    at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492) 
    at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821) 
    at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534) 
    at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023) 
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297) 
    at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589) 
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297) 
    at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877) 
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:633) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) 

maj 25, 2016 2:36:25 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["ajp-nio-8009"] 
maj 25, 2016 2:36:25 PM org.apache.coyote.AbstractProtocol destroy 
SEVERE: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"] 
java.lang.NullPointerException 
    at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316) 
    at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492) 
    at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821) 
    at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534) 
    at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023) 
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297) 
    at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589) 
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297) 
    at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877) 
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:633) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) 

servlet-api.jarのバージョンの問題に関連している可能性があります私のpom.xmlに含まれていますが、私はscope:providedを追加すると問題を解決できるはずだと思いました。

誰かが私に間違っていることをヒントできますか?

答えて

3

このスタックトレースの関連部分は次のとおりです。

Caused by: java.lang.NullPointerException 
    at org.apache.jasper.servlet.TldScanner$TldScannerCallback.scanWebInfClasses(TldScanner.java:401) 
    at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:208) 
    at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) 
    at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:106) 
    at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:103) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5261) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    ... 6 more 

bugは(2016年5月16日にリリース)のTomcat 8.0.35で導入されました - TldScannerCallback.scanWebInfClasses方法はgetResourcePaths方法に依存するように変更されました。 Tomcat 8.0.36(2016年6月9日リリース)に修正されました。

他の人がこの回答を見つけるのを助ける場合は、Tomcat 8.0.32から8.0.35にマイナーバージョンをアップグレードした直後にこの問題が発生しました(Amazon EC2インスタンスは今朝8.0.35アップデートをプッシュしました)。私の場合は、このアップデートでTomcat 5以降の変更なしで動作していたWebアプリケーションでした。

上記のバグレポートの推奨事項を使用して問題を回避することができました。具体的には、空のWEB-INF/classes/META-INFフォルダがこのバグを引き起こしていたので、そのフォルダにMANIFEST.MFファイルを作成しました。ここで

は、バグを導入し、ここでその手段は、(フォルダはほとんど空になっていないことを意味?)どんなコミッターは「rare NPE case」としてそれを参照するバグを、固定commitあるcommitです。コミットの注釈を読んだら、これは作業コードのFindBugsレポートを抑制するハックであり、Webアプリケーションを壊す実際のバグを作り出したことは明らかです。

+0

ありがとう、それは8.0.36 – Adnan

1

サーブレットjarファイルをWEB-INF/libに追加しようとしましたか?

私はspring mvcプロジェクトをデプロイする際にも同じ例外が発生しました。

これはweb.xmlの私のサーブレット定義です。ここで

<servlet> 
     <servlet-name>appServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

は、org.springframework.web.servlet.DispatcherServletは春-MVC-X.Y.Z.jarに属します。 (私はspring-mvc-4.2.5.RELEASE.jarです)。このjarファイルをMavenDependenciesからコピーし、WEB-INF/libフォルダに貼り付けました。その後、サーバーにwarファイルを再デプロイしても問題ありません。

WEB-INFの下にlibフォルダがない場合は、自分で作成する必要があります。

+1

おそらく、さまざまな条件で生成される「LifecycleException」を参照していると思います。これを理解するためには、根本的な原因、 'org.apache.jasper.servlet.TldScanner $ TldScannerCallback.scanWebInfClasses'の401行目の' NullPointerException'をもう少し深く見る必要があります。 – vallismortis

関連する問題