一、问题描述
下面是我的springboot项目的一个controller类,在eclipse中用springboot内置的tomcat能正常访问接口。
maven打成war包,部署到测试环境中,项目正常启动,定时任务正常启动,静态页面也能访问到,但是controller访问报错,没有找到对应的请求地址,如下:
二、解决尝试
既然找不到这个请求地址,就从controller问什么没有加载到去考虑。
尝试1:
启动类在controller外面,不加包扫描注解也会自动扫描controller下的类。
避免扫描不到,加了包扫描注解,尝试还是访问不到。
尝试二:
controller类的注解,类上加@Controller注解,方法返回json,方法上加上@ResponseBody注解,没问题啊。还是访问不到。
方法中改成@RestController注解,方法去掉@ResponseBody注解,还是访问不到。
尝试三:
maven把项目打成jar包方式启动,能正常访问到接口。很奇怪,但是不想用jar的方式。
尝试四:
重新写了一个新的controller类,新接口能访问到
最后定位到mapping的value,访问不到的接口路径是.jspx结尾的,去掉.jspx就能访问到了。可能springboot对这个请求地址有过滤???
当时在别的项目中向前端提供的接口都是以.jspx结尾的,所以这次就从别的地方拷贝过来。关键是本地正常,jar包调用也正常,打成war包就访问不到。郁闷