Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 启动tomcat时发生ClassNotFoundException错误_Java_Spring_Tomcat_Gradle - Fatal编程技术网

Java 启动tomcat时发生ClassNotFoundException错误

Java 启动tomcat时发生ClassNotFoundException错误,java,spring,tomcat,gradle,Java,Spring,Tomcat,Gradle,我正试图从eclipse安装tomcat服务器,但这个错误已经困扰了我很长时间,我没有找到任何解决方案 我试过: 向类路径添加spring上下文、spring核心和spring web依赖项 修改项目属性(部署程序集部分) 清理tomcat服务器目录 这是我的web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/java

我正试图从eclipse安装tomcat服务器,但这个错误已经困扰了我很长时间,我没有找到任何解决方案

我试过:

  • 向类路径添加spring上下文、spring核心和spring web依赖项
  • 修改项目属性(部署程序集部分)
  • 清理tomcat服务器目录
这是我的
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>

上下文配置位置
/WEB-INF/spring/root-context.xml
org.springframework.web.context.ContextLoaderListener
appServlet
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/spring/appServlet/servlet-context.xml
1.
appServlet
/
这是轨迹跟踪:

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)
2014年11月3日下午5:40:26 com.springsource.tcserver.security.PropertyDecoder
信息:使用基于内存的密钥的tc运行时属性解码器
2014年11月3日下午5:40:27 com.springsource.tcserver.security.PropertyDecoder
信息:tcServer运行时属性解码器已在153毫秒内初始化
2014年11月3日下午5:40:27 org.apache.coyote.AbstractProtocol init
信息:正在初始化ProtocolHandler[“http-bio-8080”]
2014年11月3日下午5:40:28 com.springsource.tcserver.servicability.rmi.JmxSocketListener init
信息:189毫秒内于127.0.0.1:6969启动JMX注册表
2014年11月3日下午5:40:28 org.apache.catalina.startup.catalina加载
信息:初始化在1258毫秒内处理
2014年11月3日下午5:40:28 org.apache.catalina.core.StandardService startInternal
信息:开始服务Catalina
2014年11月3日下午5:40:28 org.apache.catalina.core.StandardEngine startInternal
信息:启动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部署描述符
信息:部署配置描述符/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 begin
警告:[SetContextPropertiesRule]{Context}将属性“source”设置为“org.eclipse.jst.jee.server:task manager”未找到匹配的属性。
2014年11月3日下午5:40:28 org.apache.catalina.core.StandardContext listenerStart
严重:配置类org.springframework.web.context.ContextLoaderListener的应用程序侦听器时出错
java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
位于org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
位于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)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
位于org.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)
位于org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1637)
位于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)
运行(Thread.java:745)

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

所讨论的类位于SpringWeb-???RELEASE.jar中。转到您的war,或者用winzip或7Zip之类的工具打开它,然后在WEB-INF/lib中查找jar,我猜它不在那里。如果使用maven时将依赖项包括为:

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

org.springframework
弹簧网
${or.springframework版本}
如果您没有使用maven,我想您是在Eclipse中这样做的,正如您提到的部署程序集,那么您必须添加用于使这些JAR可用于Eclipse构建的编译的库。或者您可以简单地将jar移动到WEB-INF/lib


在构建jar文件后检查您的war。

您是否验证了spring jar是否在已部署的
war
中?如何做到这一点?、spring aop、spring beans、spring上下文、spring核心、spring表达式、spring web、spring webmvc都包含在war中。我希望您已经在web-INF/Libs中添加了jar。因为只有这样JEE类装入器才能装入它们