Error:(564,37) java: 对于XXXX, 找不到合适方法
在本文中记录的这个错误根本原因是Meavn项目多层依赖的情况下,依赖的没能更新上,不过关于这个报错晚上还有其他的说法——依赖库存在同名jar导致失败等问题,这可可以在网上在参考其他的博客。本问题发生的场景是:
-
Meavn项目,并且用的是IDEA
-
自建多个项目项目之间存在多层依赖
-
周边的同事项目是没有问题的
当周边的同事的没有问题而且自己的代码有重新冲git上拉去过还不行这就说明大概率问题是发生在自己的身上,所以就不要怀疑代码了,安安心心脚踏实地的来排查自己项目中的问题吧!
所以当我在对wen进行打包的时候就报了这个错误,说没有找到合适的方法,最初没有发现中间还有api这一层的引用就对dao进行的install的操作来更新依赖:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sz3z5Kda-1634226047244)(F:\typroa\aimages\image-20211014232957582.png)]
但是发现还是不起作用最后在排查pom文件中的依赖时才发现中间还有一层api项目依赖引用,最后是对dao项目进行了install之后又对api项目进行了install,之后再打包web依赖就没有了,具体的相关项目代码(这里进行了简化,主要表现出来调用关系)为:
import com.yonyou.yuncai.cpu.standardgoods.service.IGoodsPlatService;//引用的是api项目的包
@Autowired
private IGoodsPlatService goodsService;
goodsService.changeStatus(ids,GoodsStatus.approved.getCode());
public interface IGoodsPlatService {
ServiceResponse<String> pageQueryGoods(Goods goods, PageBean<Goods> pagebean) throws Exception;
void changeStatus(String[] ids, int status, String auditUser, String auditComment) throws Exception ;
void changeStatus(String[] ids,int status) throws Exception ;
}
import com.yonyou.yuncai.cpu.standardgoods.dao.GoodsPlatDao;//这个引用的是dao项目包
public class GoodsPlatServiceImpl implements IGoodsPlatService {
@Autowired
private GoodsPlatDao goodsDao;
@Override
public void changeStatus(String[] ids, int status, String auditUser, String auditComment) throws Exception {
logger.info("修改产品状态为'"+status+"',产品ID"+ids +",批注:"+auditComment);
goodsDao.changeStatus(ids, status, auditUser, auditComment);
}
}
package com.yonyou.yuncai.cpu.standardgoods.dao;
public interface GoodsPlatDao extends GenericDAO<Goods,Long>{
void changeStatus(String ids[], int status);
void changeStatus(String ids[], int status, String changeStatus, String auditComment);
}