Sud*_*ip7 11 java eclipse spring-mvc
我正在做一个简单的Spring MVC应用程序(不使用maven),它将在浏览器上打印hello world.它是eclipse中的动态项目,因此我将所有必需的jar文件放在构建路径和WEB-INF/lib文件夹中
我尝试了两种解决方案,但都没有用.
找到的解决方案:
这是我的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>Spring MVC Application</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)
并且在配置contextLoaderListener时没有拼写错误,那么问题是什么,是否还有其他解决方案
Jan 20, 2014 8:16:39 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 20, 2014 8:16:39 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.11
Jan 20, 2014 8:16:40 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:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4618)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
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)
Jan 20, 2014 8:16:40 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Jan 20, 2014 8:16:40 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Jan 20, 2014 8:16:40 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/SpringSample] startup failed due to previous errors
Jan 20, 2014 8:16:40 PM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8081"]
Jan 20, 2014 8:16:40 PM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 20, 2014 8:16:40 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4010 ms
Run Code Online (Sandbox Code Playgroud)
最终我收到404错误,因为我的服务无法加载
All*_*anT 25
我在Eclipse中遇到了同样的问题.当我做一个maven clean install并将生成的WAR文件移动到我的Tomcat webapp文件夹时,它将运行没有问题.但是,为了调试我想在Eclipse中运行,但它会抛出以下错误.
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
Run Code Online (Sandbox Code Playgroud)
我搜索了一下,直到找到以下博文.
http://commonexceptions.blogspot.com/2014/01/java.html
正如作者解释的那样:
当我没有将maven依赖项添加到构建路径时,会导致此异常.我正在使用eclipse与maven,因此必须在构建路径中包含maven依赖项,如下所述.
请参阅解决方案的帖子.这是一个简单的eclipse Deployment Assembly配置修复.花了我大约30秒,现在我可以在Eclipse中调试我的Spring webapp.
以下是帖子的相关步骤:
在项目Web部署程序集中添加Maven依赖项:
使用Eclipse WDT并使用未修改且以前工作的项目时:
上述解决方案应解决该异常.
尝试将 spring-web.jar 文件直接放在 WEB-INF/lib (WEB-INF/lib/spring-web.jar) 中而不是放在 WEB-INF/lib/spring-mvc/spring-web.jar 中