Eclipse警告:不会导出或发布XXXXXXXXXXX.jar。可能会导致运行时ClassNotFoundExceptions

时间:2012-01-16 18:48:51

标签: spring-mvc eclipse-3.6

我在Eclipse上的构建路径中放置了所需的文件后,我一直收到以下错误。我正在开发一个Spring MVC Hello World Application。我正在为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文件放入库中;但是,它仍然不承认它们是依赖关系。我错过了什么?

我尝试过以下建议: eclipse helios: tomcat project - jar will not be exported or published. runtime ClassNotFoundExceptions may result

  1. 右键单击您的网站项目
  2. 单击“属性”
  3. 选择Java EE模块依赖项
  4. 单击“Web库选项卡”
  5. 添加外部jar(如果jar在项目之外)。将在Jar / Module下添加一个条目,确保单击复选框(选中)。
  6. 问题是,当我选择“Click Properties”时,我没有选择单击Java EE Module依赖项的选项,因为它没有出现。我下载了任何额外的Java EE工具,但仍无法找到它。

3 个答案:

答案 0 :(得分:33)

确定。所以我明白了。 。 。

为了使其正常工作,我必须将我在classpath / dependencies中想要的文件“拖放”到我的WEB-INF/lib文件中。

它以这种方式工作。

出于某种原因,当我尝试以正确的方式做到这一点

  

构建路径 - >配置构建路径 - >外部罐子

它只是没有。

诀窍是我必须将文件放在我的Web App Libraries文件夹中,唯一的方法(我可以看到:)是“点击并放入”我的WEB-INF/lib文件。

这样它会自动显示在我的Web App Libraries中。

答案 1 :(得分:18)

添加新的jar文件时,我在Eclipse Problems Tab上收到两条消息:一条错误和一条警告。我在将所有先前的解决方案与额外步骤相结合时才解决了这个问题。这就是我解决它的方法:

  1. 将我在classpath / dependencies中想要的文件“拖放”到我的WEB-INF/lib文件中;
  2. Package Explorer标签中右键点击您的项目,然后build path --> configure build path -->external jars添加所需文件;
  3. 重启Eclipse;
  4. 选择Project --> Clean...。我的系统配置为自动构建,因此在此步骤之后错误消息消失了,但警告XXXXXXXXXXX.jar will not be exported or published. Runtime ClassNotFoundExceptions may result仍然存在;
  5. 右键点击警告讯息 - > Quick Fix;
  6. 选择Mark the associated raw classpath entry as a publish/export dependency.选项(如下图所示) Quick fix for warning message

答案 2 :(得分:2)

project explorer标签中右键点击您的项目,然后点击build path --> configure build path, -->external jars

添加你想要的所有罐子。