问题描述
我有以下代码,它会生成
java.lang.NoSuchMethodError: com.misyn.aia.camb.coims.common.dto.ManageReportDto.setAgencyTotals(Ljava/util/List;)V
仅在服务器中部署后发生错误(openSUSE Leap v15.0 / java 1.8)。
我在本地环境中运行相同的.jar(Windows 10 / jave 1.8) 而且效果很好。
所有其他带有lombok注释的dto都可以正常工作。
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class ManageReportDto implements Serializable {
private String row;
private String total;
private List<String> agencyTotals = new ArrayList<>();
private List<String> bancaTotals = new ArrayList<>();
private String percentage;
private List<String> courier = new ArrayList<>();
}
项目版本为
- maven v3.6.3
- spring boot v2.1.6
- 龙目岛v1.18.8
解决方法
编译代码,然后使用反编译器查找代码是否具有GETTER和SETTER方法。
JAVA反编译器:http://java-decompiler.github.io/
它将帮助您了解是否生成了GETTER和SETTER方法。
此外,关于您的IDE配置,您也可以参考以下stackoverlow链接。