转载请注明出处: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
本文源自【大学之旅_谙忆的博客】