0

我有一个继承结构,其中 SubtaskGroupA 和 SubtaskGroupB 都继承自 @MappedSuperclass 子任务,并允许用户提交一个组的多个子任务。我使用带有字段列表子任务的辅助类 SubtaskList。这个助手类的一个表单被渲染,用户将输入信息(使用 scala 的@select-helper)到所有子任务并提交表单。使用绑定输入时,Form<SubtaskList> form = form(SubtaskList.class).bindFromRequest();我收到以下异常:

Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class play.data.Form and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.ArrayList[0]->models.qosdatamodel.SubtaskGroupA["form"])
    at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:59) ~[jackson-databind-2.3.3.jar:2.3.3]
    at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:26) ~[jackson-databind-2.3.3.jar:2.3.3]
    at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) ~[jackson-databind-2.3.3.jar:2.3.3]
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) ~[jackson-databind-2.3.3.jar:2.3.3]
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) ~[jackson-databind-2.3.3.jar:2.3.3]

所有字段都是私有的,具有公共 getter/setter。在所有 SubtaskGroupA 的列表上调用 toJson 时,我得到了同样的异常。

感谢所有帮助。

编辑:我猜@JsonIgnore Annotation 有点帮助,但现在我在 bindFromRequest() 上收到了一个不同的异常:

Caused by: org.springframework.beans.NullValueInNestedPathException: Invalid property 'subtasks' of bean class [models.qosdatamodel.SubtaskList]: Could not instantiate property type [models.qosdatamodel.Subtask] to auto-grow nested property path: java.lang.InstantiationException
at org.springframework.beans.BeanWrapperImpl.newValue(BeanWrapperImpl.java:651) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.beans.BeanWrapperImpl.growCollectionIfNecessary(BeanWrapperImpl.java:885) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:790) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(BeanWrapperImpl.java:571) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath(BeanWrapperImpl.java:548) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]

`

4

1 回答 1

0

我认为问题存在于您的模型models.qosdatamodel.SubtaskGroupA中。您无法访问此类中的某些字段。为避免此问题,您必须找到导致问题的字段(您会在日志中找到它)并添加注释@JsonIgnore

我不确切知道上面SubtaskGroupA的课程是否正确,但我肯定这就是问题所在。

可能你正试图从你的模型类中制作 json,而错误来自你的一种关系:)

编辑 SubtaskList - 在这个类中你可能有问题 :)

于 2015-04-22T12:21:06.727 回答