2010-08-03 60 views
0

要JSF與Spring集成我在web.xml添加這些行:Eclipse不部署罐子到WEB-INF/lib目錄

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 

而且我使用Maven添加了所有Spring的依賴,但是當我運行我收到以下錯誤信息項目:

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener 

當我瀏覽的文件夾/WEB-INF/lib我沒有發現任何JAR文件,但相關性在pom.xml聲明。

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-web</artifactId> 
    <version>${spring.version}</version> 
</dependency> 

我認爲問題是JAR沒有與草案打包在一起。 你有一個想法如何解決它?

+0

歡迎來到Stackoverflow!要格式化代碼,您只需要用4個空格縮進即可。您可以手動或通過選擇代碼段,然後在消息編輯器工具欄或Ctrl + K鍵中按下「010101」按鈕。你不需要引用代碼和/或malforma HTML/XML元素:) – BalusC 2010-08-03 13:57:38

+0

有效地,我是新的在stackoverflow,我試圖讓我的代碼更可見,但我錯過了正確的信息:) 謝謝你提供的信息 – user405458 2010-08-03 14:24:26

回答

0

下面,我已經使用Maven添加了所有Spring的依賴,但是當我運行該項目,我收到以下錯誤消息( ...)

您如何運行該項目?你使用m2eclipse嗎?你是如何創建該項目的?您是否將現有的Maven項目導入Eclipse?

當我瀏覽的文件夾/ WEB-INF/lib中我沒有發現任何JAR文件,但相關性在pom.xml聲明

的依賴性看起來不錯,但...什麼WEB-INF/lib文件夾?究竟在哪裏? AFAIK,m2eclipse不會真的「部署」到WEB-INF/lib(但它會創建一個包含它們的自定義類路徑)。

我認爲問題是JAR沒有與草案打包在一起。你有一個想法如何解決它?

我不知道我明白你的意思。運行mvn install時會得到什麼?戰爭看起來好嗎?你真的可以顯示你的pom.xml

+0

關於maven,請您回復 關於maven,我使用m2eclipse,當我做mvn時:安裝我收到消息BUILD SUCCESSFUL。 但是,當我運行Web項目時,我收到錯誤消息,指示某些類不存在,儘管它們包含在罐中。 所以我發現Eclipse沒有部署依賴關係 所以我發現Eclipse不部署依賴關係 即使項目的jar包不包含任何jar並且它的小尺寸(18 kb) – user405458 2010-08-04 07:35:07

+0

@ user405458:因爲我寫道,maven創造的戰爭(目標)看起來好嗎?這是首先要確認的。 – 2010-08-04 07:50:10

0

org.springframework.web.context.ContextLoaderListenerorg.springframework.web.context.request.RequestContextListener都存在於spring-web包中,至少在版本2.5中是最常見的。

此外,還要確保你包括你的pom.xml

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring</artifactId> 
     <version>${your.spring.version}</version> 
    </dependency> 
+0

實際上我使用的是Spring 3.0.3,並且有更多的spring.jar,這個文件被分成幾個模塊 我包含「org.springframework.Spring-web.jar」.. 但是問題該文件的罐子沒有部署在WEB-INF/lib中,我認爲它們沒有與該項目打包在一起,這可能是問題 – user405458 2010-08-03 14:12:29

0

它沒有被添加到lib文件夾的庫正在同一個工作區中開發,我建議在庫項目的項目屬性中啓用「效用模塊」方面。有時候,即使其他配置正確,Eclipse也不會將jar複製到WEB-INF/lib文件夾中。

0

Maven依賴關係存儲在〜/ .m2。如果您運行mvn install並直接部署(使用Jetty或Tomcat插件),那麼不會是WEB-INF/lib中的任何jar文件。另一方面,如果您運行mvn package來構建WAR,則WAR應該包含部署應用程序所需的所有jar。您可以使用unzip <file.war>解壓縮此WAR文件,並檢查您的罐子是否在那裏。

至於我,我得到了這同一個錯誤,我發現我失蹤的依賴在我的pom.xml

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-web</artifactId> 
    <version>${spring.version}</version> 
</dependency> 
2

Eclipse項目右鍵 - >屬性 - >部署大會 - >添加 - > Java Build Path Entry會做。

0

做了一個maven force更新,然後安裝了build並在tomcat上運行,以便能夠在webapp/libs中找到jar。

右鍵單擊項目選擇maven> updateproject>選擇強制更新快照>確定。

0

老問題,但我有這個問題。通過切換到JDK而不是JRE來修復!

+0

然後還有其他的錯誤。這個「開關」無法解決這個問題。 – Kukeltje 2016-08-16 20:50:50