09 Aug 2020
换了编译环境,然后线上原来运行正常的代码报错如下
java.lang.IllegalArgumentException: Name for argument type [java.lang.String] not available, and parameter name information not found in class file either.
排查过程
排除,开发和运行均为jdk7排除,没有新的相关commit因为这是由于更换了编译环境后出现的,所以使用老的编译环境编译上线测试,发现使用老的编译环境编译过的代码是对的。于是定位为编译问题,仔细检查了编译环境的区别,发现少了一个使用javac编译的时候,少了一个-g参数。据某博主和某些答主总结(见下面链接),是因为javac没有-g参数的时候会忽略某些spring中的参数,我暂时没有深入研究。留待以后祥查官方文档