`
heshifk
  • 浏览: 12492 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法

阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px"></div>

 现在是越来越太原讨厌Eclipse这个IDE了,他的存在的各种问题完全可以出10w字的一本书了。当然,如果你喜欢在解决IDE问题过程中提升技能那就不要说了,我认为,Eclipse的设计存在一个问题:它恨不得把世界上所有的功能都囊括进来,但是出现的各种问题基本无法在IDE里自动消化。

    Eclipse虽是个强大的IDE,但是在解决IDE本身出现的不友好的故障过程中浪费大量的时间是非常不划算的。由于这个原因,导致众多Eclipse的重度用户,在博客里开专栏收集各种Eclipse的问题,

    举例来说明,在使用EclipseEE这个版本中安装Maven插件开发Java Web应用时,发布项目到Tomcat中无法启动,应为它并没有把Maven所管理的依赖自动添加到应用的ClassPath中,导致启动时报各种ClassNotFoundException。这一点,我已经花掉了差不多半天的时间来查明原因(这就是我写这篇文章的冲动所在),这个让我非常沮丧的经历再次让我对这个IDE失去信心。大部分初级工程师对IDE的依赖太过强烈,所以有必要分享一下给大家个提示,Eclipse本来只是个工具,不得不说在某些时候,这个IDE确实提高了不少效率,但是由于依赖的习惯,已经离不开Eclipse的人可能要在解决上述说的各种IDE不能消化的问题而话费大量的时间,难道只是为了使用这个“工具”而使用工具?却忘记了使用工具为了什么!

正题

以上是开篇感慨,目的是提示大家,不要被“神奇的Eclipse"工具所绑架。

 

下面揭示前文提到的:Eclipse中发布Maven管理的Web项目时找不到类的问题。

ClassNotFoundException: org.springframework.web.context.ContextLoader

这个报错是没有人希望看到的,既然看到了,没有办法回避,只能解决它(我们被Eclipse绑架了)。

 

原因是这样的:使用eclipse没有帮你把jar拷贝到lib下,classloader在load的时候当然是找不到的。在它帮你发布的web应用的lib下你可以看到如下:

Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法

进一步原因:发布设置里默认不发布这些jar,居然没有任何提示,这能算是智能的IDE吗?

Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法

在maven管理的web工程上查看属性,具体见上图,看到了吧,它根本没有关注maven原来是它的一个插件。jar全部忽略了

 

解决办法

 

接上图,看下图,你就懂了。使用“add...”把,没法子呀,它不管你,你只能自力更生了。

Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法

接着

Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法

 

哦,看见了吧,maven管理的classPath在这里,再走。

Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法

到此,你的classpath有了maven管理的jar了。点击“Ok”,再重新发布项目看看。那些Not Found可以消失了吧!

 

总之

    举例说明了Eclipse的IDE内部问题是烦人且浪费时间的,从这一点说,我们一直在解决IDE抛给我们的问题,而无法专注解决我们当初使用它为了解决的问题。我们被它给绑架了。有人会说,你牛逼就不要用嘛。,我要是牛逼当然不会用他啦。

 

    编程的本质上是把自己的思路用用代码来描述一下。却不得不被各种IDE干扰,在你牛逼之前,也是没有办法的。

 

    当然了,世界上没有完美的IDE,只有完美的思考方式。当到一定程度,我们完全可以脱离任何IDE写出优秀的应用来那个时候,就是所谓牛逼的起码境界。前面的路都是用生命、血和汗来铺,这里只是希望人们少流些血和汗,早一天牛逼起来。

分享到:
评论

相关推荐

    404的ssm项目

    在这个"404的ssm项目"中,我们遇到的问题是在尝试通过`login.sp`访问controller时遇到了404错误。这通常意味着服务器无法找到请求的资源,可能是由于多种原因造成的。 首先,我们需要检查项目配置,确保所有组件都...

    java.lang.NoClassDefFoundError: javax/persistence/EntityListener

    标题 "java.lang.NoClassDefFoundError: javax/persistence/EntityListener" 提到的问题是一个常见的Java运行时异常,通常表示在类加载时找不到指定的类定义。这个错误在Java应用程序或Web应用中出现,可能是因为...

    Myeclipse2015导出war报错时的替换jar包

    总之,处理MyEclipse导出WAR文件时遇到的错误需要耐心和细致,通过对项目依赖、配置、插件和日志的检查,通常能够找到问题的根源并解决。如果替换JAR文件仍然无法解决问题,那么可能需要进一步调查和调试,或者考虑...

    tomcat 异常

    - `ServletException`:与Servlet相关的错误,如初始化失败、找不到Servlet类等。 2. **日志分析**: - Tomcat的异常信息通常记录在`catalina.out`或`logs`目录下的其他日志文件中。分析这些日志可以找出异常的...

    更新Maven项目后,在Tomcat上收到以下错误消息:

    在开发基于Spring MVC的Web应用程序时,我们可能会遇到各种问题,尤其是在更新了Maven项目之后。标题中的“更新Maven项目后,在Tomcat上收到以下错误消息”表明开发者可能遇到了与依赖更新、构建过程或部署配置相关...

    ngrinder-controller缺失的jar包

    在软件开发和运维过程中,我们经常遇到依赖库的问题,特别是在使用开源项目时。本文将深入探讨“ngrinder-controller缺失的jar包”这一问题,旨在帮助用户理解这个问题的根源,并提供有效的解决方法。 ngrinder是一...

    myeclipse10 导出war崩溃

    在IT行业中,开发人员经常需要将Java Web项目打包成WAR(Web ARchive)文件,以便部署到Web服务器上运行。"myeclipse10 导出war崩溃"这个问题是许多开发者在使用MyEclipse集成开发环境时可能遇到的一个常见问题。...

    JAVA培训(一)ppt课件.ppt

    【Java培训(一)PPT课件概览】 本次Java培训涵盖了从基础知识到高级主题的广泛内容,旨在帮助初学者和有一定经验的...此外,还会接触到实际项目中的问题解决和部署策略,为成为一个专业的Java开发者奠定坚实的基础。

    tomcat报错:Wrapper cannot find servlet class ...问题解决

    但如果类加载设置不当,可能会导致类找不到的问题。 5. **验证JAR依赖**:如果Servlet依赖于其他的JAR库,确保这些库已包含在`WEB-INF/lib`目录下,并且版本兼容。 总结,解决“Wrapper cannot find servlet class...

    解决tomcat在Debug模式下无法启动问题

    通过这些方法,大多数情况下都可以成功解决问题,让开发者能够顺利进行Debug工作。在此过程中,不断学习和理解Eclipse和Tomcat的工作原理也至关重要,这对于优化开发流程和提高效率有着积极的作用。

    jetty运行时无法保存文件的解决方法

    如果上述步骤依然无法解决问题,建议重启Jetty服务器或者Eclipse开发环境,以确保所有更改都被正确加载和生效。 总结来说,Jetty运行时无法保存文件通常是由于配置不当引起的。通过调整"webdefault.xml"文件中的...

    Wicket 1.4 开发手记(一) helloworld与环境配置

    这种复杂性导致调试和测试变得更加困难,特别是在遇到性能瓶颈时,定位问题根源变得非常耗时。 ##### 2. 配置文件过多 随着SSH的流行,Java开发中XML配置文件的使用变得越来越普遍。虽然XML是一种很好的配置手段,...

Global site tag (gtag.js) - Google Analytics