转载

IDEA Maven Web项目 ClassNotFound解决方法

异常错误

最近在学习SSM框架,遇到的跟找不到Class有关的异常错误有:

我使用的是Maven dependency:

<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper -->  
<dependency/>  
 <groupId/>tk.mybatis</groupId/>  
 <artifactId/>mapper</artifactId/>  
 <version/>4.1.5</version/>  
</dependency/>

然后重启TOMCAT服务器遇到这个错误:

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find

特地查找了 out/artifacts/项目名/WEB-INF/lib 有没有 tk.mybatis对应的jar包(名为mapper-4.1.5.jar) ,结果发现lib没有这个jar包。

我无法解决,于是使用IDEA Maven的 Reimport All Maven Projects

IDEA Maven Web项目 ClassNotFound解决方法

再次启动TOMCAT,然后又报错,报错如下:

ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

于是,我又去查看out目录:lib没有一个jar包。

IDEA Maven Web项目 ClassNotFound解决方法

这个问题( 在JavaWeb中out文件夹出现某个文件缺失 )经常出现。

这个问题还可以让Js文件加载失败,报404错误,具体情况可以看如下链接:

加载js失败的解决方法

遇到缺失lib包后,记得按如下步骤 重新添加lib目录到artifacts

Ctrl+Alt+Shift+S 进入Project Structure ---> 定位到出问题的 Web Application: Exploded

IDEA Maven Web项目 ClassNotFound解决方法

IDEA Maven Web项目 ClassNotFound解决方法

IDEA Maven Web项目 ClassNotFound解决方法

IDEA Maven Web项目 ClassNotFound解决方法

这样out下lib的jar完整了。

什么是 artifact 你可以参考: Artifact (software development) - Wikipedia )

简单来说,artifact可以指开发过程中的class diagrams,用例,UML模型,设计文档,开发需求等。它也可以指的是开发进程中的项目计划、商业案例、风险评估。总之,它是开发软件过程中的有形可见的副产品。

对于端用户而言,artifact可以指的是 Application 或者 复杂的数据对象 (端用户创建,端用户也无须知道开发语言)。

就我个人理解,我们在IDEA配置Artifacts后,就相当于部署了一个"表现环境",通过这个,我们的Web能在TOMACT跑起来。

原文  https://segmentfault.com/a/1190000021357533
正文到此结束
Loading...