且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【问题解决】IDEA-Maven下Tomcat发布Web项目,遇到Jar包无法找到

更新时间:2022-02-18 15:59:18

转载请注明出处http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客


这个错误坑了我半天百度谷歌上的解决方案差不多全部尝试了。
还是无法解决。后来是解决了。

问题是这样的
集成工具是:IDEA
Maven建了一个Web项目通过Tomcat发布了.

SpringMVC依赖了一个文件上传的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的版本有问题如果你其他的包出现了问题不妨换个版本试试

还有一件事要做

【问题解决】IDEA-Maven下Tomcat发布Web项目,遇到Jar包无法找到

你需要把这个包从项目中put到tomcat中这个项目的lib中去这步很关键。

有的时候也有可能是这步的问题哦。

我这个问题估计是由于在maven down依赖的时候出现中断然后jar包里面的类不全导致的或者是1.2.2这个版本的包有问题。

然后重新发布OK。
其他的包出现无法找到的情况可以参考本篇哦。

希望能解决你的问题。

本文章由[谙忆]编写 所有权利保留。
欢迎转载分享是进步的源泉。

转载请注明出处http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客