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

转载请注明出处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的版本有问题如果你其他的包出现了问题不妨换个版本试试

还有一件事要做

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

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

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

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

希望能解决你的问题。

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

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

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

时间: 2025-01-28 04:24:29

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

Tomcat发布web项目中文乱码问题

问题描述 Tomcat发布web项目中文乱码问题 我写了一个java web项目, 在eclipse下发布到tomcat上,运行没有问题,在所有的浏览器上都可以支持下载功能. 但是当我把web项目打成war包放到tomcat下启动tomcat,web项目也能运行, 只是在下载时在IE11中会出现传的参数中文乱码问题.求救啊 解决方案 中文乱码的问题,直接修改tomcat->conf->server.xml文件,在文件的Connector中加上这一句设置URIEncoding="UTF

tomcat发布web项目 报ip地址非法 求解决

问题描述 Exceptioninthread"Thread-3"com.huawei.bme.commons.exception.GeneralBMEException:IP地址非法.atcom.huawei.bme.system.devicemgr.DeviceManagerProcess.checkDeviceInfo(DeviceManagerProcess.java:298)atcom.huawei.bme.system.devicemgr.DeviceManagerProce

Maven发布web项目到tomcat

在java开发中经常要引入很多第三方jar包:然而无论是java web开发还是其他java项目的开发经常会由于缺少依赖包引来一些不必要的异常.常常也是因为这样的原因导致许多简单的缺包和版本问题耗费大量的精力.然而,开源世界并没有让java开发人员在这方面耗费过多的精力. Apache提供了Maven工具,对项目进行自动化的构建和发布.只需要在Maven的pom.xml文件中加入相应的配置项,剩余的工作交给maven就可以了.然而去喝杯茶做个安安静静的美男子.然而除了Maven外还有Gradle

服务版的tomcat怎么发布Web项目

问题描述 服务版的tomcat怎么发布Web项目 服务版的tomcat怎么发布Web项目? 直接放在webapps下就可以了? 不用配置其他的什么配置文件吗 解决方案 系统级的配置不用,你就配置你自己的文件,比如数据库连接等 解决方案二: 不用配置,启动后测试一下 解决方案三: 把你的项目打成war包放在webapps下面就可以 解决方案四: 这个需要看 你用的服务器的是Linux还是window的.window的其实就是和本地是一样的.但是Linux上是不一样的. 你的Linux服务器上使用啦

javaweb项目中jar包相互引用导致tomcat不能正常发布

问题描述 javaweb项目中jar包相互引用导致tomcat不能正常发布 现在做一个项目是用到结构如下: web项目 A 引用了普通java项目B,我在B里重写了Myservlet,结果两者都引用了j2ee.jar. 项目在tomcat发布时老是报"tomcat/webapps/testweb is locked"大体是这样. 想了解下在这种情况下,如何配置project

tomcat-myeclipse 2015本地发布WEB项目失败

问题描述 myeclipse 2015本地发布WEB项目失败 更新了MyEclipse2015,添加了一个本地的tomcat8,如果不添加项目或是添加一个空的web项目,tomcat是可以正常开启的,但是添加了现有项目之后错误如下 请问会是哪里的错误以及如何解决?我在2014下是没有问题的 解决方案 百度的图片不能正常显示,看不到错误是什么

在传智播客下了一个web项目,但是报错,请各位大神指教(初学java)

问题描述 在传智播客下了一个web项目,但是报错,请各位大神指教(初学java) log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog). log4j:WARN Please initialize the log4j system properly. 2015-9-23 14:16:25 org.apache.catalina.core.StandardWrapperValve invoke 严重:

maven管理的java web项目怎么用cxf把接口暴露出来

问题描述 maven管理的java web项目怎么用cxf把接口暴露出来 我有一个完整的java Web 项目,可以运行成功,但是现在有需要把其中的接口暴露出来,这就有问题了,我加了@webservice,但是当我在applicationContext.xml 中配置时,例如我添加这样的代码: 还有就是我添加:http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd后再写jaxws:endpoint/jaxws:end

在 lib 下新建一个目录放入 jar 包,tomcat访问不到

问题描述 在 lib 下新建一个目录放入 jar 包,tomcat访问不到 如在lib 下新建一个hibernate 的目录,将heibernate相关的jar包放到里面,编译时正常 ,但是在tomcat 环境下,找不到目录内的jar包. 将这些jar放到 lib目录下又可正常运行, 请问是需要配置哪些地方吗. 解决方案 设置jar包的lib目录 解决方案二: 首先,可以重新发布下项目,看看有没有问题,其次,再试试手动将这个jar添加到类路径下. 解决方案三: 要放到WEB-INF下面,你可以在