2012-01-16 78 views
23

在Eclipse中將所需文件放在我的構建路徑中後,我不斷收到以下錯誤。我正在研究Spring MVC Hello World應用程序。我爲Java EE開發人員運行Eclipse Helios:Eclipse警告:XXXXXXXXXXX.jar不會被導出或發佈。運行時ClassNotFoundExceptions可能導致

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. 右鍵單擊Web項目
  2. 單擊屬性
  3. 選擇Java EE模塊依賴
  4. 單擊Web庫選項卡
  5. 添加外部罐子(如果罐子在您的項目之外)。一個條目將被添加到Jar/Module下,確保你點擊複選框(選中)。

問題是,當我選擇「單擊屬性」時,我沒有選擇單擊Java EE模塊依賴關係的選項,因爲它沒有出現。我下載了任何額外的Java EE工具,但仍無法找到它。

+1

? – 2012-01-16 20:59:02

+0

不,我想我是否通過Eclipse做了所有事情,我也不會。我以爲你只需要Maven,如果你沒有使用IDE? – Mike 2012-01-17 00:50:15

+0

我現在明白了。 。 。我下載了Eclipse的Maven插件。感謝您的領導:) – Mike 2012-01-22 13:51:19

回答

27

好的。所以我想通了。 。 。

爲了讓它正常工作,我必須在我的類路徑/依賴項中「拖放」我想要的文件到我的WEB-INF/lib文件中。

它以這種方式工作。

出於某種原因,當我嘗試做正確的方式

構建路徑 - >配置構建路徑 - >外罐

它只是不走。

訣竅是,我必須將文件放在我的Web App Libraries文件夾中,唯一的方法就是這樣(我可以看到:)是「點擊並放置」到我的WEB-INF/lib文件中。

這樣它會自動顯示在我的Web App庫中。

+0

我想如果我不使用maven,我會把所有的jar放在lib目錄中,然後將它們添加到從那裏的classpath。 – 2012-01-22 18:55:37

+0

看起來像一個Eclipse「功能」 - 我也在4.2(Juno)發行版中遇到過它。 – mjn 2012-11-13 12:17:15

+3

如果使用maven構建:在Eclipse中永遠忽略它: Windows - >首選項 - >驗證 - >取消激活「類路徑依賴性驗證程序」 (至少:)) – brabenetz 2014-03-26 18:06:26

3

右擊你的項目project explorer選項卡,build path --> configure build path, -->external jars

添加所有你想要的罐子。

+0

問題是,這是我一直在做的,但我仍然得到上述引用的錯誤。我添加的jar刪除我的compliation錯誤,但現在我的依賴性錯誤。去搞清楚! – Mike 2012-01-17 00:33:46

9

添加新的jar文件時,我在Eclipse的Problems Tab上收到兩條消息:一個錯誤和一個警告。將所有以前的解決方案與一個額外步驟結合起來時,我只解決了這個問題下面是我如何解決它:

  1. 「刪除並拖」,我想在我的類路徑的文件/文件依賴到我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. 您正在使用Maven來管理你的依賴性選擇選項Mark the associated raw classpath entry as a publish/export dependency.(如下圖所示) Quick fix for warning message
+0

這工作。謝謝! – Shankar 2018-02-06 19:02:48

相關問題