【问题标题】:I'm getting "org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart". Some clues?我收到“org.apache.catalina.core.StandardContext startInternal SEVERE:错误 listenerStart”。一些线索?
【发布时间】:2013-06-24 05:02:27
【问题描述】:

我正在开发一种复杂的 hello world-spring webapp(因为它只有最低限度的功能:一个控制器和一个视图(用 thymeleaf 制作)、简单的数据库连接(oracle)和简单的电子邮件发送功能)。

现在我正在尝试使用我的 IDE(IntelliJ Idea 12.1.3 Ultimate)将此 webapp 部署到 tomcat-7 中,但我从控制台获取时根本没有成功:

Artifact infoSynth:war exploded: Artifact is being deployed, please wait...
org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/synthesizer] startup failed due to previous errors
org.apache.catalina.startup.HostConfig deployDirectory

从 Tomcat 的日志中:

 org.apache.catalina.core.StandardContext listenerStart
 SEVERE: error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4823)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1551)
    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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:762)
    at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:622)
    at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:569)
    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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:762)
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1454)
    at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:74)
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1295)
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1387)
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:818)
    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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303)
    at sun.rmi.transport.Transport$1.run(Transport.java:159)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)

在添加电子邮件内容之前(取自here),webapp 运行良好,但在添加电子邮件相关服务和控制器时,一切都停止了,org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart 出现了。

我使用的是 Spring 3.1.1,Thymeleaf 2.0.12,我没有使用 maven,这是我的 web.xml

<!-- Spring -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Someone 建议一些基本的字符编码。你认为这可能是一个正当的理由吗?谁能把我引向正确的方向?一些进一步的阅读?一些忠告?提前致谢!

【问题讨论】:

    标签: spring-mvc intellij-idea tomcat7 web.xml servlet-listeners


    【解决方案1】:

    帮助我解决问题的线索在这里:Tomcat Severe listenerStart error

    由于我需要更新我的库,其中一些在新工件中遗漏了,这就是错误的根本原因。

    解决了!

    【讨论】:

      【解决方案2】:

      在我的情况下发生的事情是我在 web.xml 中拼错了我的班级名称

      在找到 localhost.log 并看到 classnotfound 异常之前,我无法弄清楚发生了什么...

      由于某种原因,实际错误不在 catalina.out 中,而是在 Tomcat 目录的 logs 文件夹中的 localhost.yyyy-mm-dd.log 下

      【讨论】:

      • 感谢您提供有关检查 localhost.log 的说明
      【解决方案3】:

      我有许多 XML 文件,它们在 XML 定义 (&lt;?xml version="1.0"?&gt;) 之前添加了数据(注释数据)。一旦我删除了注释字符串并将它们移动到 XML 定义之后,我就可以毫无问题地启动我的 Web 应用程序了。

      【讨论】:

        猜你喜欢
        • 2012-03-01
        • 1970-01-01
        • 2013-03-28
        • 1970-01-01
        • 1970-01-01
        • 2011-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多