加载ContextLoaderListener时出现ClassNotFoundException

我正在使用Spring 3.0,hibernate开发webapp。 当我尝试在WAS 7.0上部署我的应用程序时,它给出了错误 – 无法加载侦听器:org.springframework.web.context.ContextLoaderListener]:java.lang.ClassNotFoundException:

以下是我的网络应用的外观:

  ABC  index.html   contextConfigLocation classpath:applicationContext.xml   org.springframework.web.context.ContextLoaderListener  

抛出的exception如下,

 com.ibm.ws.webcontainer.webapp.WebApp logError SRVE0293E: [Servlet Error]-[Failed to load listener: org.springframework.web.context.ContextLoaderListener]: java.lang.ClassNotFoundException: class java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at java.beans.Beans.instantiate(Beans.java:190) at java.beans.Beans.instantiate(Beans.java:75) at com.ibm.ws.webcontainer.webapp.WebApp.loadListener(WebApp.java:1643) at com.ibm.ws.webcontainer.webapp.WebAppImpl.loadListener(WebAppImpl.java:671) at com.ibm.ws.webcontainer.webapp.WebApp.loadLifecycleListeners(WebApp.java:1554) 

那么,web.xml中有什么问题吗?

编辑:对不起,我没有提及,我正在使用Maven来获取jar子。 我在WEB-INF文件夹中也有所需的jar文件,即org.springframework.web.context

看看以下链接
http://forum.springsource.org/showthread.php?60812-ClassNotFoundException-org.springframework.web.con-text.ContextLoaderListener

它说您可以通过转到项目属性 – >部署程序集并添加Maven依赖项构建路径条目来解决此问题

class java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
在java.beans.Beans.instantiate(Beans.java:190)

.jar文件是否包含类路径上的org.springframework.web.context.ContextLoaderListener

你有一个错误的spring-web依赖定义,而不是:

  org.springframework org.springframework.web ${org.springframework.version}  

你应该在评论中写下我所写的内容:

  org.springframework spring-web ${spring.version}  

ArtifactId是spring-web${spring.version}当然不重要,只要确保它与你定义的版本字符串匹配。

将您添加到项目中的任何jar都放入并确保它们也放在WEB-INF / lib目录中。 这是您的服务器在引用第三方库时查看运行时的位置。 它们不会自动放在那里; 但有一些方法可以自动化(即使用ANT脚本或类似的东西)。 只是为了完成并运行,您只需手动将jar复制/粘贴到该目录即可。 如果将它们添加到IDE外部的该目录中,请确保在将文件放在IDE后从IDE中刷新文件夹。

java引擎失败也找到了类(如你的exception所示: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

java将在类路径上搜索类。 您的Web应用程序结构中有一个文件夹(在运行”’服务器的计算机上),您可以在其中放置包含类的jar文件。 你需要将spring.jar或spring-web.jar放在这个文件夹中。 我猜这个文件夹名为lib,它可能位于一个名为WEB-INF的文件夹中,但我不确定,因为我不知道’是’。

将jar文件放入其中后,您可能需要重新启动Web / app-server。 希望这可以帮助! ^^

 Project> properties> deployment assembly> add > referenced project class path entries> maven dependencies 

再次部署。 这个对我有用

戴夫是对的! 您需要在两个地方需要所有必需的JAR:

  1. 如果在启动服务器时看到exception,那么在WEB-INF / lib目录中没有所需的JAR,因此需要将所有JAR保留在那里。

  2. 如果您在Java代码中看到任何编译错误,那么您没有正确配置构建路径。 将所有放在WEB-INF / lib中的JAR保存在构建路径中作为“Referenced Libraries”。

整天都在努力解决同样的错误…我有弹簧网jar,但事实certificate我还需要弹簧环境支持jar。 我把它添加到我的pom中,现在一切正常。

  org.springframework spring-context-support ${org.springframework-version}  

错误日志:

 com.ibm.ws.webcontainer.annotation.WASAnnotationHelper collectClasses unable to instantiate class java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener SRVE0293E: [Servlet Error]-[Failed to load listener: org.springframework.web.context.ContextLoaderListener]: java.lang.ClassNotFoundException: class java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener loadLifecycleListeners SRVE0279E: Error occured while processing global listeners for the application {0}: {1} java.lang.NullPointerException at com.ibm.ws.webcontainer.annotation.WASAnnotationHelper.inject(WASAnnotationHelper.java:266) 

我有同样的问题。 希望这有助于某人。 我的WEB-INF / lib文件夹中缺少一些依赖项jar,但是在Referenced库中有。 我不得不再次进行maven clean安装,以确保所有的jar都被拉入lib文件夹。 问题可能在你的pom.xml中,如果它无法正确拉入jar子。 所以请密切注意这一点。

Project-> Maven clean and build – > lib文件夹刷新并确保所有jar都在那里(或者抛出exception的特定jar)