我在Eclipse中運行動態Web項目時遇到了一個問題。我創建了一個Maven項目(archtype - webapp),然後通過添加maven-eclipse-plugin(版本2.9)在其中添加DWP行爲。在我將我的項目依賴的POM文件,該文件是如下運行時在eclipse wtp中未解決的傳遞依賴關係
然後我建立使用maven命令項目(全新安裝)。我可以在目標文件夾中看到生成的war文件。當嘗試在eclipse中的tomcat上運行此應用程序(project->右鍵單擊 - >運行一個服務器)時,tomcat以錯誤開始。
SEVERE: Exception sending context initialized event to listener instance of class net.sourceforge.wurfl.core.web.WURFLServletContextListener java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils at net.sourceforge.wurfl.core.web.WURFLServletContextListener.contextInitialized(WURFLServletContextListener.java:81) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5260) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:866) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:842) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1581) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) ... 15 more Starting Introspector initialization...
當我看着Eclipse文件夾從那裏運行Tomcat應用程序(C:\迪帕克\學習\開發\實習\ workspace.metadata.plugins \ org.eclipse.wst.server.core \ TMP0 \ wtpwebapps \ accessloganalyzer-1.0-SNAPSHOT),我沒有發現我在項目中使用的第三方庫wurfl.1.4.jar的任何依賴項(包括在錯誤中引用的commons-lang)。
WURFL庫使用以下依賴性,其不存在於WEB-INF/lib和因此造成問題
- 公地集合-3.2.1
- 公地琅-2.6
- 傑克遜-core-ASL-1.8.2
- 傑克遜映射器-ASL-1.8.2
- 的logback經典-0.9.28
- 的logback核-0.9.28
- SLF4J-API-1.6.1
任何一個可以請點我錯過了什麼,爲什麼這些傳遞性依賴沒有被在WEB-INF/lib文件夾中複製在應用程序WAR文件?
你在使用m2e嗎?如果是,那麼你不需要eclipse插件?你確定關於wurf圖書館的1.4版本嗎? – khmarbaise
嗨khmarbaise,感謝您對此主題的迴應。我試圖刪除eclipse插件,但結果是一樣的。是的,我確定關於wurff 1.4。我從wurfl網站下載了這個庫,並使用maven manual install命令手動安裝它。 – user1477713