2013-10-10 47 views
5

在spring-hibernate項目中,我添加了eclipse中某些用戶創建的庫所需的所有jar。但是它仍然給出了一個例外,即 ServletDispatcher不可用。下面顯示的所有jar文件都顯示出來,只是幫助我離開了哪一個。類未找到:org.springframework.web.servlet.DispatcherServlet

org.springframework.aop-3.0.4.RELEASE.jar 
org.springframework.asm-3.0.4.RELEASE.jar 
org.springframework.aspects-3.0.4.RELEASE.jar 
org.springframework.beans-3.0.4.RELEASE.jar 
org.springframework.context.support-3.0.4.RELEASE.jar 
org.springframework.context-3.0.4.RELEASE.jar 
org.springframework.core-3.0.4.RELEASE.jar 
org.springframework.expression-3.0.4.RELEASE.jar 
org.springframework.instrument.tomcat-3.0.4.RELEASE.jar 
org.springframework.instrument-3.0.4.RELEASE.jar 
org.springframework.jdbc-3.0.4.RELEASE.jar 
org.springframework.jms-3.0.4.RELEASE.jar 
org.springframework.orm-3.0.4.RELEASE.jar 
org.springframework.oxm-3.0.4.RELEASE.jar 
org.springframework.test-3.0.4.RELEASE.jar 
org.springframework.transaction-3.0.4.RELEASE.jar 
org.springframework.web.portlet-3.0.4.RELEASE.jar 
org.springframework.web.servlet-3.0.4.RELEASE.jar 
org.springframework.web.struts-3.0.4.RELEASE.jar 
org.springframework.web-3.0.4.RELEASE.jar 
hibernate3.jar 
jstl.jar 
standard.jar 
org.springframework.webflow-2.2.1.RELEASE.jar 

堆棧跟蹤是:

SEVERE: Servlet /PersonLoanManegment threw load() exception 
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)    
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) 
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525) 
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507) 
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124) 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136) 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:722) 
+0

你可以發佈stacktrace嗎? –

+1

這在部署時發生?如果是,只需將所需的jar添加到用戶庫並在eclipse構建路徑中引用即可。你應該檢查你的.war是否有這些罐子! – Pokuri

回答

1

你在你的類路徑中需要的jar org.springframework.web.servlet-3.0.4.RELEASE.jar。其中含有org.springframework.web.servlet.DispatcherServlet

+0

我認爲依賴是'spring-webmvc' - http://central.maven.org/maven2/org/springframework/spring-webmvc/3.2.4.RELEASE/。 –

+0

即使在添加spring-webmvc後,它也會發出同樣的異常 –

+0

@PavelHoral我也嘗試添加commons.logging。但仍然沒有得到它。 –

-1

當你遇到ClassNotFound的異常試圖找到使用各種在線工具缺少的罐子像jarFinder

2

您需要的jar彈簧網絡3.0.4.RELEASE.jar classpath中。與Maven:

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

問候

+0

我沒有使用maven –

1

也許,這不是因爲你失去依賴的配置。你應該檢查jar是否真的可用,請按照下面的步驟操作:

打包你的項目,然後解壓縮它,檢查:/ WEB-INF/lib,看看org.springframework.web.servlet-3.0.4.RELEASE .jar存在!如果是的話,解壓這個罐子,看看它是否腐敗!它不存在或損壞,檢查你的Maven倉庫,你可以從你的Maven倉庫中刪除這個工件,並重建,讓Maven重新下載它。祝你好運!

4

我發現增加了POM:

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

添加了需要的文件和IntelliJ是能夠解決的DispatcherServlet。

+1

謝謝! spring-webmvc依賴有這個類。 – asgs