簡體   English   中英

java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoadListener

[英]java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoadListener

我已經為這個問題苦苦掙扎了幾天(這就是為什么我提供GitHub鏈接)。 這是堆棧跟蹤:

    SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoadListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoadListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4854)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我僅指出,我使用Tomcat 7,並且從Eclipse中的“服務器”選項卡運行服務器。

我已經閱讀了互聯網上的所有內容。 提供的最常見的解決方案是:

“轉到項目屬性->部署程序集,單擊添加...,選擇Java構建路徑條目,然后將Maven依賴項添加到Web部署程序集。”

它對我不起作用,與到目前為止我看到的其他Internet解決方案一樣。 我沒有希望。

我正在提供指向我的項目的GitHub鏈接: https : //github.com/wiewioraseb/beer-blog-hiccup.git我已經嘗試將其導出到另一台計算機,但在另一台計算機上運行它時仍然遇到相同的錯誤。

引導Spring根上下文的正確偵聽器類是ContextLoaderListener,而不是ContextLoadListener! 因此在web.xml中應該是:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

鏈接顯示 :在部署環境中,只需確保您的服務器類路徑包含Spring jar庫(例如spring-2.5.6.jar)。

對於Spring3,將ContextLoaderListener移至spring-web.jar,您可以從Maven中央存儲庫獲取該庫。

 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.0.5.RELEASE</version> </dependency> 

您確定您的構建路徑(在Eclipse中)實際上包括所有依賴項(在這種情況下,尤其是spring-web和spring-webmvc)? 如果使用mvn clean install來構建* .war文件,並且將其解壓縮,則庫可能會包含在其中。

但是,這與Eclipse不同。 因此,我建議在目錄中運行mvn clean install eclipse:clean eclipse:eclipse 然后在Eclipse中刷新項目並進行清理(Project-> Clean)。

要查看庫是否已正確部署,請雙擊服務器,然后轉到此位置(在工作區文件夾中):

tomcat eclipse目錄

並檢查WEB-INF/lib文件夾中的依賴項(* .jar文件)。

通常,這可以為我解決問題。 你應該:

  • 在Eclipse中關閉服務器
  • 右鍵單擊->清理->清理Tomcat工作目錄
  • 運行上面的命令
  • 啟動服務器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM