当前位置:   article > 正文

idea 找不到类错误ClassNotFoundException解决方案

idea classnotfoundexception springapplication

新建了个项目,想添加spring到项目中。却奇怪的遇到错误。找不到ClassNotFoundException。

一般碰到这个错误都是类没有加载进来,检查web.xml没有异常,检查pom文件正常,在web.xml文件中甚至可以进入到spring的监听器中。

  1. <!-- log4j的配置文件加载 放在最前面才能捕获到spring加载bean的错误,配置文件放根目录才不会有警告-->
  2. <context-param>
  3. <param-name>log4jConfigLocation</param-name>
  4. <param-value>classpath:log4j.properties</param-value>
  5. </context-param>
  6. <!--加载spring配置文件位置-->
  7. <context-param>
  8. <param-name>contextConfigLocation</param-name>
  9. <param-value>classpath:config/spring/applicationContext-*.xml</param-value>
  10. </context-param>
  11. <!--捕捉服务器的启动和停止,触发相应的方法-->
  12. <!-- spring监听器 -->
  13. <!--<listener>-->
  14. <!--<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>-->
  15. <!--</listener>-->
  16. <listener>
  17. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  18. </listener>

百度之发现其实ecplise中也有人碰到过这种问题,jar明明在却就是找不到,最后的解决方案发现tomcat的应用下面没有lib这个文件夹,导致jar无法放进去,从而出现的这个问题。

下面具体的报错信息:

  1. 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
  2. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
  3. at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858)
  4. at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
  5. at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504)
  6. at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486)
  7. at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113)
  8. at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4984)
  9. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)
  10. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
  11. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
  12. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
  13. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
  14. at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1859)
  15. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  16. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  17. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  18. at java.lang.reflect.Method.invoke(Method.java:606)
  19. at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)

服务器报错信息:

  1. 十一月 28, 2016 11:55:00 下午 org.apache.catalina.core.StandardContext startInternal
  2. 严重: One or more listeners failed to start. Full details will be found in the appropriate container log file
  3. 十一月 28, 2016 11:55:00 下午 org.apache.catalina.core.StandardContext startInternal
  4. 严重: Context [/shadow] startup failed due to previous errors
  5. [2016-11-28 11:55:00,241] Artifact shadow:war exploded: Error during artifact deployment. See server log for details.

按照上面ecplise发生的错误,检查idea的配置

000331_QP1f_2652412.png

如上可以看到文件没有添加进去,

000638_mQTP_2652412.png

建好之后是这样的

000707_xW5h_2652412.png

000833_0BIt_2652412.png

这个时候可以看到文件已经到这里面来了

000912_bTTP_2652412.png

 

点击确定,再次运行!项目成功运行!此时,你也可去你的编译目录发现lib下面已经有文件了~

比如我的编译输出路径是这个

001248_ecNI_2652412.png

打开这个路径果然是jar都在了

001321_H30U_2652412.png

如果上面没设置的话,光在编译输出路径建立lib包是没有作用的!

另外最后测试发现,其实,直接直接点击也是可以的

001613_9fKv_2652412.png

 

转载于:https://my.oschina.net/sprouting/blog/795756

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/313385?site=
推荐阅读
相关标签
  

闽ICP备14008679号