【问题标题】:BeanUtils.copyProperties() throw NullPointerException when using on Tomcat [duplicate]在Tomcat上使用时BeanUtils.copyProperties()抛出NullPointerException [重复]
【发布时间】:2018-05-13 05:32:19
【问题描述】:

BeanUtils.copyProperties() 在 Tomcat 上抛出 NullPointerException,但在 localhost 上可以正常工作。

我检查了所有内容,dto 不是null,只有用户的属性是null,这很好。

public void saveUser(UserDTO dto) {
    User user = new User();
    BeanUtils.copyProperties(dto, user);

    session.beginTransaction();
    session.save(user);
    session.getTransaction().commit();
}

我的用户.java

public class User {

    @Id @GeneratedValue
    private long id;

    private String userId;
    private String firstName;
    private String lastName;
    private String email;
    @Enumerated(EnumType.STRING)
    private Role role;
    private String encryptedPassword;
    private String salt;
    private String token;

... getters and setters method ...
}

【问题讨论】:

  • 您应该发布您的用户类并告诉我们哪些字段为空
  • 我的感觉告诉我要查看这两个对象的 getter 和 setter。但这只是猜测。我们需要更多信息
  • 已编辑谢谢

标签: java hibernate tomcat nullpointerexception apache-commons-beanutils


【解决方案1】:

错误是当 BeanUtils 尝试从您的 User 类复制 Role role

private Role role;

它会尝试获取Role 的属性(通过反射),但因为你的rolenull,它会抛出NPE

复制时使用此方法忽略字段role

public static void copyProperties(Object source,
                              Object target,
                              String... ignoreProperties)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多