【问题标题】:Tomcat 7 startup issue using STS 3.0.1使用 STS 3.0.1 的 Tomcat 7 启动问题
【发布时间】:2012-11-09 15:26:42
【问题描述】:

我已经安装了 STS 3.0.1,并且正在关注我的书 Pro Spring MVC with Web Flow(来自 APress)。

我已将书籍/出版商提供的源代码导入 STS。我已经添加了 Tomcat7 服务器并选择了 Tomcat7 作为 Targeted Runtime。

我已将 Tomcat7 设置为使用 JDK 1.6。根据我的配置,STS 似乎也在使用 JDK 1.6。

我可以使用 Gradle 构建我的项目,将 war 文件移动到 webapps 文件夹,手动重新启动 Tomcat7(在 Eclipse 之外),它就会工作。

但是,从 STS 本身,当我选择 Run as -> Run on server 时,我收到以下错误:

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/chapter1-bookstore]]
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
    at java.util.concurrent.FutureTask.get(FutureTask.java:83)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
    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: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/chapter1-bookstore]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 7 more
Caused by: java.lang.Error: Unresolved compilation problem: 
    The method addServlet(String, DispatcherServlet) is undefined for the type ServletContext

    at com.apress.prospringmvc.bookstore.web.BookstoreWebApplicationInitializer.registerDispatcherServlet(BookstoreWebApplicationInitializer.java:49)
    at com.apress.prospringmvc.bookstore.web.BookstoreWebApplicationInitializer.onStartup(BookstoreWebApplicationInitializer.java:43)
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:162)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5274)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
9-Nov-2012 11:14:12 AM 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$Sync.innerGet(FutureTask.java:222)
    at java.util.concurrent.FutureTask.get(FutureTask.java:83)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
    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:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    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: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
9-Nov-2012 11:14:12 AM org.apache.catalina.startup.Catalina start
SEVERE: Catalina.start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
    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:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more
9-Nov-2012 11:14:12 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4465 ms

【问题讨论】:

    标签: eclipse spring-mvc tomcat7


    【解决方案1】:

    问题是这样的

    方法 addServlet(String, DispatcherServlet) 未定义类型 ServletContext

    如果你查看javadoc可以看到addServlet方法在JavaEE5中是不存在的

    http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html http://docs.oracle.com/javaee/5/api/javax/servlet/ServletContext.html

    这意味着您的 Tomcat7 尝试使用 Tomcat6 配置。在eclipse中打开server选项卡,双击tomcat 7安装。然后检查运行时下拉菜单是否设置为 Tomcat7。此外,您可以单击“打开启动配置”并查看库是否设置正确。如果这些都没有帮助,您可以尝试从 eclipse 中删除您的 tomcat 实例并尝试创建一个新实例。

    【讨论】:

    • 运行时环境显示 Tomcat 7... 打开启动配置 > Classpath looks like this
    • 您可以检查的另一件事。在 Eclipse 中创建一个新的 tomcat 服务器。在新的服务器窗口中单击配置运行时环境,然后编辑 tomcat 7 运行时并检查 Tomcat 安装是否指向正确的 tomcat 路径。如果是,请查看新服务器是否正常工作...
    • New Server Screen...Server Runtime...还是一样的错误...跟使用JDK 1.6没关系?
    • 我也在JDK1.6上使用它,只是出于好奇,是否可以从某个地方下载示例项目?
    • 我从这个地址下载的组件中做了第1章:apress.com/9781430241553
    【解决方案2】:

    我无法解释原因,但我切换到了 STS 3.1.0 而不是 Groovy/Grails Suite 3.1.0(不知道为什么一开始就使用它)。

    现在,我到目前为止所获得的教程和解释都有效。哇!

    【讨论】:

      猜你喜欢
      • 2018-04-26
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多