首页 > 解决方案 > 序列化时杰克逊 InvalidDefinitionException

问题描述

正如我在标题中所说,我试图序列化一个非常简单的对象,但这会带来很多问题。我要发布代码和错误(非常简单和简短)。

package assignment6;

public class Transaction {

private String date;
private String causal;

public Transaction() {}

public String getDate() { return this.date; }

public String getCausal() { return this.causal; }

public void setDate(String date) { this.date = date; }

public void setCausal(String causal) { this.causal = causal; }

}


package assignment6;

import java.io.*;
import com.fasterxml.jackson.databind.ObjectMapper;

public class MainClass {
    public static void main (String[] args) {
        ObjectMapper om = new ObjectMapper();
        Transaction t = new Transaction();
        t.setDate("07/11/2020");
        t.setCausal("pagobancomat");
        File f = new File("try.json");
        try {
            f.createNewFile();
            om.writeValue(f, t);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }
}

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:类型的类型定义无效assignment6.Transaction:无法为 [简单类型,类 assignment6.Transaction] 构造 BeanSerializer:(java.lang.reflect.InaccessibleObjectException) 无法使公共 java.lang.String assignment6.Transaction.getDate() 可访问:模块 reti 不“导出 assignment6 " 到 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:72) 的 com.fasterxml.jackson 的模块 com.fasterxml.jackson.databind。 databind@2.9.7/com.fasterxml.jackson.databind.SerializerProvider.reportBadTypeDefinition(SerializerProvider.java:1163) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer (BeanSerializerFactory.java:438) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.ser.BeanSerializerFactory。在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:231) 在 com.fasterxml.jackson.databind@ 找到BeanSerializer(BeanSerializerFactory.java:279) 2.9.7/com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:165) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider .java:1388) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1336) 在 com.fasterxml.jackson.databind@2.9.7/com .fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:510) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind。SerializerProvider.findTypedValueSerializer(SerializerProvider.java:713) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:308) 在 com.fasterxml.jackson。 databind@2.9.7/com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3905) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper .java:3159) 在 reti/assignment6.MainClass.main(MainClass.java:26)_configAndWriteValue(ObjectMapper.java:3905) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3159) 在 reti/assignment6.MainClass.main(MainClass.爪哇:26)_configAndWriteValue(ObjectMapper.java:3905) 在 com.fasterxml.jackson.databind@2.9.7/com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3159) 在 reti/assignment6.MainClass.main(MainClass.爪哇:26)

我已经完成了..不知道如何解决这个问题,有什么提示吗?上 1

标签: javajackson

解决方案


推荐阅读