Spring mvc Eclipse警告:不会导出或发布xxxxxxxxxx.jar。可能会导致运行时ClassNotFoundException

Spring mvc Eclipse警告:不会导出或发布xxxxxxxxxx.jar。可能会导致运行时ClassNotFoundException,spring-mvc,eclipse-3.6,Spring Mvc,Eclipse 3.6,在我将所需文件放入Eclipse的构建路径后,我一直遇到以下错误。我正在开发一个Spring MVC Hello World应用程序,并为Java EE开发人员使用Eclipse Helios: Jan 16, 2012 1:25:42 PM org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet /SpringMVCTutorial threw load() exception java.lang.Class

在我将所需文件放入Eclipse的构建路径后,我一直遇到以下错误。我正在开发一个Spring MVC Hello World应用程序,并为Java EE开发人员使用Eclipse Helios:

Jan 16, 2012 1:25:42 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /SpringMVCTutorial threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    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.StandardWrapper.loadServlet(StandardWrapper.java:1062)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
我尝试右键单击服务器并单击“清理”。我右键单击应用程序,单击“构建路径”和“配置构建路径”,并将正确的JAR文件放入库中;但是,它仍然不承认它们是依赖项。我错过了什么

我尝试了以下建议:

  • 右键单击Web项目
  • 单击“属性”
  • 选择“Java EE模块依赖项”
  • 单击“Web库”选项卡
  • 添加外部JAR(如果JAR在项目之外)。将在Jar/Module下添加一个条目,确保单击复选框(选中)

  • 问题是,当我选择“单击属性”时,我没有单击JavaEE模块依赖项的选项,因为它不会出现。我下载了任何额外的Java EE工具,但仍然找不到。

    右键单击“项目浏览器”选项卡中的项目,然后转到“构建路径”→ '配置生成路径'→ '外部JAR`,并添加您想要的所有JAR。

    为了让它正常工作,我必须“拖放”我想要在类路径/依赖项中的文件到我的
    WEB-INF/lib
    文件夹中。它是这样工作的

    出于某种原因,当我试图用正确的方式去做的时候

    构建路径→ 配置生成路径→ 外罐

    这根本不需要他们


    诀窍是我必须将文件放入我的Web App Libraries文件夹中,唯一的方法(我可以看到)是“单击并放入”我的
    Web-INF/lib
    文件夹中。这样,它就会自动显示在我的Web应用程序库中。

    当添加新的jar文件时,我在Eclipse的
    问题选项卡上收到两条消息:一条错误和一条警告。我只是在将以前的所有解决方案与额外步骤结合起来时才解决了这个问题。我是这样解决的:

  • “拖放”我想要在
    类路径/依赖项中的文件到我的
    WEB-INF/lib/
    文件夹中
  • 右键单击
    包资源管理器
    选项卡中的项目,然后
    生成路径-->配置生成路径-->外部JAR
    ,添加所需的文件
  • 日食
  • 选择
    项目-->清理…
    。我的系统配置为自动生成,因此在执行此步骤后,错误消息消失,但警告
    xxxxxxxxxx.jar将不会导出或发布。运行时ClassNotFoundExceptions可能会导致
    保留
  • 右键单击警告消息-->
    快速修复
  • 选择选项
    将关联的原始类路径条目标记为发布/导出依赖项。
    (下图中)

  • 您是否使用Maven来管理您的依赖关系?没有。我想如果我通过Eclipse完成所有工作,我也不会这么做。我以为你只需要Maven如果你不使用IDE?我现在明白了。我下载了用于Eclipse的Maven插件。谢谢你的提醒:)我想你会发现这比手动管理依赖关系要容易得多。祝你好运。问题是这就是我一直在做的,但我仍然得到上面提到的错误。我添加的JAR删除了我的遵从性错误,但现在删除了我的依赖性错误。算了吧!我想如果我没有使用maven,我会将所有JAR放在lib目录中,然后将它们添加到类路径中。看起来像是Eclipse的“功能”-我在4.2(Juno)版本中也遇到过它。如果使用maven构建:在Eclipse中永远忽略它:Windows->Preferences->Validation->停用“类路径依赖项验证器”(至少:)(以防人们通过搜索找到这里):如果我没弄错的话,现在(即至少在Luna SR2+)中)通过项目属性的“部署程序集”选项卡/部分可以找到您想要的内容。在那里(就在左侧“Java构建路径”的上方),您可以进行“添加”,选择“Java构建路径条目”和所有依赖的JAR,以便在IDE内运行/调试时将它们包含在应用程序服务器(例如Tomcat)的适当文件夹中。我用这个答案解决了我的问题。事实上,使用
    buildpath->..->添加它们是不起作用的添加外部JAR…
    是指您需要使用
    构建路径->添加它们添加JAR…
    ,然后选择WEB-INF/lib文件夹中的JAR。这是最简单的解决方案,对我来说效果很好。谢谢