部署后,龙目岛二传手会生成错误java.lang.NoSuchMethodError

问题描述

我有以下代码,它会生成 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链接。

Lombok is not generating getter and setter