ClassNotFoundException启动tomcat时出错 [英] ClassNotFoundException Error when starting tomcat

查看:93
本文介绍了ClassNotFoundException启动tomcat时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从eclipse安装tomcat服务器,但是这个错误已经打了很久,我没有找到任何解决方案..



我尝试:


  • 向类路径添加spring-context,spring-core,spring-web依赖项。
    <
  • 修改项目属性这是我的 web.xml

     <?xml version =1.0encoding =UTF-8?> 
    < web-app version =3.0xmlns =http://java.sun.com/xml/ns/javaee
    xmlns:xsi =http://www.w3。 org / 2001 / XMLSchema-instance
    xsi:schemaLocation =http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web- app_3_0.xsd>

    <! - 所有Servlet和过滤器共享的Root Spring容器的定义 - >
    < context-param>
    < param-name> contextConfigLocation< / param-name>
    < param-value> /WEB-INF/spring/root-context.xml< / param-value>
    < / context-param>

    <! - 创建所有Servlet和过滤器共享的Spring容器 - >
    < listener>
    < listener-class> org.springframework.web.context.ContextLoaderListener< / listener-class>
    < / listener>

    <! - 处理应用程序请求 - >
    < 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>
    1< / load-on-startup>
    < / servlet>

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

    < / web-app>

    以下是追踪追踪:

      Nov 03,2014 5:40:26 PM com.springsource.tcserver.security.PropertyDecoder< init> 
    INFO:tc运行时属性解码器使用基于内存的键
    2014年11月03日下午5点40分27秒com.springsource.tcserver.security.PropertyDecoder< init>
    INFO:tcServer Runtime属性解码器已在153 ms初始化
    2014年11月3日下午5时40分27秒org.apache.coyote.AbstractProtocol init
    INFO:Initializing ProtocolHandler [http-生物-​​8080\" ]
    2014年11月3日下午5点四十分28秒com.springsource.tcserver.serviceability.rmi.JmxSocketListener的init
    产品介绍:在189毫秒启动JMX注册表上127.0.0.1:6969
    2014年11月3日下午5点40分28秒org.apache.catalina.startup.Catalina加载
    INFO:在1258 ms处理初始化ms
    Nov 03,2014 5:40:28 PM org .apache.catalina.core.StandardService startInternal
    INFO:启动服务Catalina
    2014年11月3日下午5点40分28秒org.apache.catalina.core.StandardEngine startInternal
    INFO:启动Servlet引擎:VMware vFabric tc Runtime 2.8.2.RELEASE / 7.0.35.B.RELEASE
    2014年11月3日下午5时40分28秒org.apache.catalina.startup.HostConfig deployDescriptor
    INFO:部署配置描述符/home/karim/Downloads/.springsource/vfabric-tc-server-developer-2.8.2.RELEASE/base-instance /conf/Catalina/localhost/task-manager.xml
    2014年11月3日下午5时40分28秒开始org.apache.catalina.startup.SetContextPropertiesRule
    警告:[SetContextPropertiesRule] {}上下文设置属性'source'to'org.eclipse.jst.jee.server:task-manager'找不到匹配的属性。
    11月03,2014 5:40:28 org.apache.catalina.core.StandardContext listenerStart
    SEVERE:配置类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)在org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137

    在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java: 4733)
    在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)$ b在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    $ B在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    。在组织.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    在org.apache.catalina .startup.HostConfig.deployDescriptor(HostConfig.java:657)
    at org.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1637)
    at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)
    在java.util.concurrent.FutureTask.run(FutureTask.java:262)
    在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java :1145)
    在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)$ b $在java.lang.Thread.run(Thread.java:745)

    如果您需要其他的东西,请告诉我。

    解决方案

    有问题的类是在spring-web - ????? RELEASE.jar中。转到你的战争,用winzip或7Zip等打开它并在WEB-INF / lib中查找jar,我的猜测是它不存在。如果您使用的maven包含依赖项:

     <依赖项> 
    < groupId> org.springframework< / groupId>
    < artifactId> spring-web< / artifactId>
    < version> $ {or.springframework-version}< / version>
    < /依赖关系>

    如果您没有使用maven,并且我想像您在Eclipse中这样做,正如您提到的部署程序集,你必须添加你用于使这些jar可用于编译到eclipse版本的库。或者你可以简单地将jar移动到WEB-INF / lib。

    在为jar文件构建之后检查你的war。


    I'm trying to setup the tomcat server from eclipse, but this error has beaten me for a long and i didn't find any solution..

    I tried:

    • adding spring-context, spring-core, spring-web dependencies to the classpath.
    • modifying the project properties(Deployment Assembly section).
    • cleaning the tomcat server directory.

    this is my web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    
        <!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/root-context.xml</param-value>
        </context-param>
    
        <!-- Creates the Spring Container shared by all Servlets and Filters -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
        <!-- Processes application requests -->
        <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>
    
        <servlet-mapping>
            <servlet-name>appServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
    </web-app>
    

    and this is the tracktrace:

    Nov 03, 2014 5:40:26 PM com.springsource.tcserver.security.PropertyDecoder <init>
    INFO: tc Runtime property decoder using memory-based key
    Nov 03, 2014 5:40:27 PM com.springsource.tcserver.security.PropertyDecoder <init>
    INFO: tcServer Runtime property decoder has been initialized in 153 ms
    Nov 03, 2014 5:40:27 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    Nov 03, 2014 5:40:28 PM com.springsource.tcserver.serviceability.rmi.JmxSocketListener init
    INFO: Started up JMX registry on 127.0.0.1:6969 in 189 ms
    Nov 03, 2014 5:40:28 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1258 ms
    Nov 03, 2014 5:40:28 PM org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    Nov 03, 2014 5:40:28 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: VMware vFabric tc Runtime 2.8.2.RELEASE/7.0.35.B.RELEASE
    Nov 03, 2014 5:40:28 PM org.apache.catalina.startup.HostConfig deployDescriptor
    INFO: Deploying configuration descriptor /home/karim/Downloads/.springsource/vfabric-tc-server-developer-2.8.2.RELEASE/base-instance/conf/Catalina/localhost/task-manager.xml
    Nov 03, 2014 5:40:28 PM org.apache.catalina.startup.SetContextPropertiesRule begin
    WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:task-manager' did not find a matching property.
    Nov 03, 2014 5:40:28 PM 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:4733)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
        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.deployDescriptor(HostConfig.java:657)
        at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1637)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
    

    Please, if you need another thing just let me know.

    解决方案

    The class in question is in spring-web-?????RELEASE.jar. Go to your war and either open it with the likes of winzip or 7Zip and look for the jar in WEB-INF/lib, my guess is that it isn't there. If your using maven include the dependency as:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${or.springframework-version}</version>
    </dependency>
    

    If you're not using maven and I imagine you're doing this in Eclipse as you mentioned deployment assembly, you must add whatever libraries you used to make these jars available to your compile to the eclipse build. Or you can simply move the jar to WEB-INF/lib.

    Check your war after the build for the jar file.

    这篇关于ClassNotFoundException启动tomcat时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆