最近在学习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
再次启动TOMCAT,然后又报错,报错如下:
ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
于是,我又去查看out目录:lib没有一个jar包。
这个问题( 在JavaWeb中out文件夹出现某个文件缺失
)经常出现。
这个问题还可以让Js文件加载失败,报404错误,具体情况可以看如下链接:
加载js失败的解决方法
遇到缺失lib包后,记得按如下步骤 重新添加lib目录到artifacts
:
按 Ctrl+Alt+Shift+S
进入Project Structure ---> 定位到出问题的 Web Application: Exploded
这样out下lib的jar完整了。
什么是 artifact
你可以参考: Artifact (software development) - Wikipedia )
简单来说,artifact可以指开发过程中的class diagrams,用例,UML模型,设计文档,开发需求等。它也可以指的是开发进程中的项目计划、商业案例、风险评估。总之,它是开发软件过程中的有形可见的副产品。
对于端用户而言,artifact可以指的是 Application
或者 复杂的数据对象
(端用户创建,端用户也无须知道开发语言)。
就我个人理解,我们在IDEA配置Artifacts后,就相当于部署了一个"表现环境",通过这个,我们的Web能在TOMACT跑起来。