搭建ssm框架的时候还遇到一个问题,真的是无语了,
问题如图:
搭建步骤如下:
基础代码和文件目录等等处理完毕后导入jar包,注意,这里就要出问题了,
导包方式一:
找到准备好的jar包
点击ok即可,自动退回主界面
配置tomcat
先点击apply再点击ok
点击运行
错误大致如下
解决办法:
进入project structure
删除 test_sm:war exploded
再点击加号选择 from modules:
点击之后再点击ok,结果如图:
然后 apply , ok
再运行tomcat,问题就解决了,所以出错的原因是jar没有正确引用。所以得把生成的war包,如下图
给重新生成一下即可解决。
基础代码和文件目录等等处理完毕后导入jar包,注意,这里就要出问题了,
导包方式二:推荐这种方式
当项目基础代码文件都准备好时,导入jar包,最好是一开始就导入jar包
步骤如下:
建立一个lib文件夹,并且把jar包都复制进去:
进入dependencies
然后:
选择自己心目里的lib文件夹,然后点击ok
结果如图:
再点击apply, ok
这次,直接运行tomcat即可,方式二是在WEB-INF目录下建立lib目录,然后再在dependencies里选择这个项目的lib进行导入,这种方式确保了jar包可以导入,如果,假如再不行,可以模仿方式一,删除war包,重新生成war,运行即可。
war包入下图:
追加:如果上述方法没解决,则看下面这部分解释:
ssm框架初始化
第一次的提交是ssm框架基本配置,第二次提交是加了验证码登录功能。注意,如果没有创建User类,
UserDao,UserService,UserServiceImpl, 以及SystemController就不要创建UserMapper.xml。
否则启动报 Artifact ssm__second:war exploded: Error during artifact deployment. See server
log for details. 这个错误,这时可以把web.xml里的
org.springframework.web.context.ContextLoaderListener 注释掉,这样启动,但是注意,
这是在还没有用到@Autowired,@Service,@Repository,@Component等注解的前提下,
如果用了这些注解且把 org.springframework.web.context.ContextLoaderListener 注释掉,
就不能加载applicationContext.xml配置文件了,自然就找不到被注解注册的 bean 。
则会报:Caused by: org.springframework.beans.factory.
NoSuchBeanDefinitionException: No qualifying bean of ty............
这个错误
所以, 在未注册Bean时(即使用这些注解:@Autowired,@Service,@Repository,@Component)就
不要写UserMapper.xml等实体类对应的xml,此时根本用不到, 因为实体类还没写,
我就是在未写实体类等(UserDao,UserService,UserServiceImpl,以及SystemController)提前
粘贴了UserMapper.xml进入项目, 导致出错,浪费大量时间。