轉載請注明出處:http://blog.csdn.net/qq_26525215
本文源自【大學之旅_諳憶的博客】
這個毛病坑了我半天!!!百度谷歌上的解決方案差不多全部嘗試了。
還是沒法解決。后來是解決了。
問題是這樣的:
集成工具是:IDEA
Maven建了1個Web項目,通過Tomcat發布了.
SpringMVC依賴了1個文件上傳的Jar包。我用Maven添加進去的。
但是沒起作用,在項目用Tomcat發布以后(可以正常發布),用到那個Jar包時會出現找不到類的毛病。
exception:
javax.servlet.ServletException: Servlet.init() for servlet springMvc threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
.........
root cause:
java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
.........
root cause:
java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
.........
意思是找不到org.apache.commons.fileupload.FileItemFactory這個路徑下的jar
或是jar不完全致使的
當時我用的版本是1.2.2.
pom.xml中添加的是這樣的:
<!--文件上傳依賴的Jar包-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
在項目中可以看到這個包的結構,也就是成功導入了。
可是還是會出現這個問題。
我的解決辦法是這樣的:
首先刪除這個包的dependency
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
保存,
項目右鍵–>Maven–>Reimport .
然后再編輯pom.xml:
添加:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
還有,我估摸著這個1.2.2的版本有問題,如果你其他的包出現了問題,無妨換個版本試試!!!
還有1件事要做:
你需要把這個包從項目中put到tomcat中這個項目的lib中去!這步很關鍵。
有的時候,也有多是這步的問題哦。
我這個問題估計是由于在maven down依賴的時候出現中斷,然后jar包里面的類不全致使的,或是1.2.2這個版本的包有問題。
然后重新發布,OK。
其他的包出現沒法找到的情況,可以參考本篇哦。
希望能解決你的問題。
本文章由[諳憶]編寫, 所有權利保存。
歡迎轉載,分享是進步的源泉。
轉載請注明出處:http://blog.csdn.net/qq_26525215
本文源自【大學之旅_諳憶的博客】