2010-04-14 236 views
15

我有一個maven eclipse webapp項目,我可以右鍵單擊並在服務器上運行,它將在tomcat上部署。我最近做了一個'maven - >更新項目配置',我現在不能部署和運行項目作爲web應用程序。有沒有人見過這個?從tomcat的唯一輸出如下 - 它甚至不像它試圖部署應用程序。Eclipse Maven web應用程序 - 無法在服務器上運行

Apr 14, 2010 3:58:54 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java 
Apr 14, 2010 3:58:54 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:taac-web' did not find a matching property. 
Apr 14, 2010 3:58:54 PM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
Apr 14, 2010 3:58:54 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 402 ms 
Apr 14, 2010 3:58:54 PM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
Apr 14, 2010 3:58:54 PM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.24 
Apr 14, 2010 3:58:54 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
Apr 14, 2010 3:58:54 PM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
Apr 14, 2010 3:58:54 PM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/14 config=null 
Apr 14, 2010 3:58:54 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 247 ms 

的POM仍設置爲戰爭,但清理的項目,現在我正在圖書館ClassNotFoundExceptions正在包括作爲Maven依賴後:

SEVERE: Error configuring application listener of class org.springframework.security.web.session.HttpSessionEventPublisher 
java.lang.ClassNotFoundException: org.springframework.security.web.session.HttpSessionEventPublisher 

這裏是我的POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.cable.wuntee.neto.nse</groupId> 
    <artifactId>taac-web</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>taac-web JEE5 Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
     <version>3.0.1.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.freemarker</groupId> 
     <artifactId>freemarker</artifactId> 
     <version>2.3.16</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>3.0.2.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-acl</artifactId> 
     <version>3.0.2.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>3.0.2.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-core</artifactId> 
     <version>3.0.2.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib</artifactId> 
     <version>2.2</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.ldap</groupId> 
     <artifactId>spring-ldap-core</artifactId> 
     <version>1.3.0.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.ldap</groupId> 
     <artifactId>spring-ldap</artifactId> 
     <version>1.3.0.RELEASE</version> 
     <type>pom</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-ldap</artifactId> 
     <version>3.0.2.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.cable.wuntee.neto.nse</groupId> 
     <artifactId>wuntee.neto.nse-ldap</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.cable.wuntee.neto.nse</groupId> 
     <artifactId>wuntee.neto.nse-cada</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 

    <dependency> 
     <groupId>com.cable.wuntee.neto.nse</groupId> 
     <artifactId>wuntee.neto.nse-sams</artifactId> 
     <version>2.0-SNAPSHOT</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.0.1.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>3.0.1.RELEASE</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.0.2</version> 
     <configuration> 
      <source>1.5</source> 
      <target>1.5</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    <finalName>taac-web</finalName> 
    </build> 
</project> 

回答

2

也許你更改了<packaging>war到其他事故。你可以展示你的POM?

你能否確認,你有Maven的WTP集成WTP安裝(這是不可能的,但也許你安裝了最新版本的m2eclipse沒有這種額外的,不管怎樣,事情是工作,直到您更新項目配置)?

+0

是的,有Maven的WTP安裝 - 只是試圖卸載和重新安裝(沒有幫助)。而且,是的,它是在我更新項目配置之前工作的......在以下帖子 – wuntee 2010-04-14 22:28:44

+0

上查看新的錯誤/ pom也 - 如果我打包項目,它會複製所有項目。jar文件到WEB-INF/libs目錄;如果我手動把它們放在eclipse項目中,它運行的很好......不知道爲什麼WTP不能管理它在eclipse中...... – wuntee 2010-04-14 22:44:14

+0

@wuntee你之前更改過什麼「更新項目配置」。你有沒有改變一些版本? – 2010-04-14 22:47:37

1

這些都沒有幫助 - 我最終只是禁用了工作空間解決方案,並且在處理過期時處理安裝工作空間依賴關係。

2

我在WAR項目上遇到了那些奇怪的編譯錯誤。由於某種原因,類路徑以某種方式發生了變化,並且忽略了WAR所依賴的工作空間中的其他項目。

最終工作的唯一解決方案是擦除我的工作區,並在每個項目中刪除.classpath,.project和.settings。從一個新的工作區開始解決它。

我發現了一個bug,提到Maven WTP bug跟蹤器中類似的東西,但我沒有得到足夠的投票來修復我猜。

4

三種可能的解決方案。我已經使用了所有三個取決於它是如何出錯的。

  1. 我解決了這個由我的POM移除春季安全依賴關係(我只有彈簧安全標籤庫和彈簧安全配置它拉一切我需要),節約了POM,讓Maven的做它的東西,然後再次將它們添加回來,讓Maven再次獲得依賴關係並在Eclipse中重新啓動服務器。當問題發生時,Eclipse項目中的Maven依賴關係目錄似乎缺少spring-security-web構件(其中包含org.springframework.security.web.session.HttpSessionEventPublisher)。對我而言,只有在重新啓動我的電腦後啓動Eclipse纔會發生,所以我假設它是Windows(Vista),而Eclipse M2Eclipse插件沒有很好地打開文件鎖定或什麼的。

  2. 替代解決方案(問題再次發生,以前的解決方案將無法正常工作)。這一次,我從本地maven倉庫(Eclipse窗口 - >首選項 - > Maven->用戶設置)中刪除了org/springframework目錄。然後,更新Maven的依賴關係,然後在這裏我們再次去。

  3. 如果你已經完成了「Maven-> Update Project Configuration」,這可能是因爲你的「Deployment Assembly」設置不包括Maven依賴項。轉至project-> properties->部署程序集。檢查Maven Dependencies是否存在,並擁有/ WEB-INF/lib的部署路徑。如果沒有,請單擊添加並在Java構建路徑選項下找到它。如果它不在那裏,你的構建路徑可能也會被破壞(儘管這從來沒有發生過)。

0

替代解決方案(問題再次發生,以前的解決方案將無法正常工作)。

這一次,我從本地maven倉庫(Eclipse窗口 - >首選項 - > Maven->用戶設置)中刪除了org/springframework目錄。然後,更新Maven的依賴關係,然後在這裏我們再次去。

2

在項目屬性下,轉到「方面」,按轉換某物,啓用動態Web模塊,然後按應用。

15

我發現

Tomcat & Spring Web - Class Not Found Exception org.springframework.web.context.ContextLoaderListener

你需要推動Maven依賴到服務器時,該項目被髮布到它的答案。

右鍵單擊項目資源管理器中的Web項目 - >選擇「屬性」。在項目屬性下,選擇「部署程序集」。

部署組件屬性頁面顯示將作爲Eclipse的已裝配工件發佈到服務器的內容。您需要告訴Eclipse您希望所有Maven依賴項都被髮布。

要做到這一點,請點擊'添加'按鈕,然後選擇'Java Build Path Entries'。點擊Next並選擇Maven Dependencies。這將發佈Maven的依賴JAR文件,到lib文件夾時,Eclipse的發佈你的項目WST服務器

+0

哦,上帝謝謝!你救了我幾個小時! – ianaz 2013-01-27 17:29:51

0

今天我有同樣的問題,對我來說它有助於重新安裝的Apache在eclipse的重建/刷新項目之後

0

好吧,我也爲此付出了一點努力。我不認爲有很多明確的答案,並且一段時間之後我會刪除該項目並重新導入它,因爲每次都會起作用。

今天我發現它在項目上運行一個maven clean(例如mvn clean)後又開始工作了。試試看看它是否適合你。

這不等同於eclipse clean,因爲它只從目標目錄中刪除選定的幾個文件夾,而不是整個東西。

0

我碰到這個問題,每隔一段時間,快速修復是:

  • 右鍵項目 - >的Maven - >更新項目...
  • Eclipse的服務器選項卡:停止服務器,右鍵點擊Tomcat的v# - >清理 - > OK

下面是我用它來看看Eclipse是實際部署當它運行的tomcat的故障排除步驟。這是目前的火星和霓虹燈。(這些步驟假設你已經使用運行項目至少一次「在服務器上運行...」)

  1. 爲Tomcat上運行您的項目拉起設置:
    右鍵項目 - >運行方式 - >運行配置...
  2. 轉到參數選項卡並查看VM參數,您將看到如下所示: Run As Server Settings Arguments tab with -Dwtp.deploy 查找-Dwtp.deploy的值。對我來說是

D:\code\workspaceNeon\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

  • 即目錄包含標準的web應用部署結構。在OS文件瀏覽器中打開該目錄並檢查其內容。當我在WEB-INF/lib望去,只見我最依賴的人失蹤
  • 一定要退出當您完成該目錄的出來,否則Eclipse會得到錯誤試圖修改/更新
  • 現在是有時間來解決這個問題。讓我們來看看Eclipse是應該進行部署:

    1. 打開你的項目展開組件設置:

      右鍵項目 - >屬性 - >部署大會 Deployment Assembly with Maven Dependencies

    2. Maven依賴關係是上面的關鍵項目。 如果沒有這個,收出對話框,做行家更新: 右鍵項目 - >的Maven - >更新項目...

    3. 現在我們所做的更新,讓我們清除掉服務器工作手動目錄並重新發布。這可能並不總是必要的,但要確保一切都在同步之間什麼部署總成所示,什麼是實際部署是一個好辦法:

      • 在Eclipse轉到服務器選項卡。如果在當前的eclipse佈局中沒有看到它,請執行 窗口菜單 - >顯示視圖 - >其他.. - >搜索「服務器」 Eclipse servers tab
      • 右鍵單擊Tomcat v#...並選擇「清理...「。在確認對話框中單擊確定 Eclipse server clean confirm dialog
      • 右擊Tomcat的v#...,然後選擇「發佈」
      • 啓動服務器和測試。如果仍然有問題,回到wtp.deploy目錄和檢查,看看有什麼不對

    祝你好運!

    相關問題