在项目环境搭建时,想搭建一套分模块的架构。具体结构如下:
core
service
web
三个模块,service依赖core,web依赖service(compile)而我们的controller在web模块中,其maven依赖,各种环境引入完毕后,启动tomcat。
结果报错:could not find class that it depends on (具体是一个service类找不到的错误信息,日志信息忘了保存,这里就不再重现生成了)
经过一番分析:在编译阶段没报错,运行时居然报错了。于是检查maven,pom,各种刷新重启,仍然不能解决。
最后,终于发现问题所在。原来spring 在读取class文件时,默认读取的是加载的jar包的class,而我这得项目是创建的webapp的maven项目,虽然打包成了jar包,但是路径跟jar包有所不同。
更改项目属性为java项目,重新发布重启,问题得以解决。
jar包目录结构如上图,如果是错误的目录结构,则为WEB-INF/classes/... ...