当我尝试使用RESTEasy检索数据时,会出现以下异常:
原因:org。科德豪斯。杰克逊。地图JsonMappingException:找不到类org的序列化程序。冬眠代理波乔。javassist。JavassistLazInitializer,未发现创建BeanSerializer的属性(为了避免异常,请禁用SerializationConfig.Feature.FAIL_ON_EMPTY_bean))(通过引用链:les.core.modules.profile.profile[“emails”]-
我在网上查了一下,发现这是因为Jackson试图序列化数据,但数据尚未加载。我在某个地方发现了一种通过使用这样的jackson配置来禁用异常的可能性:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
public class JacksonConfig extends JacksonJsonProvider {
public JacksonConfig() {
ObjectMapper mapper = new ObjectMapper();
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
// setMapper(mapper);
}
}
但我不知道如何让它工作,我的意思是,方法setMapper
应该是什么样子?我没有用Spring。我还试着用以下内容来注释“Email”类
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
它没有帮助。我不想注释每个getter wich'@JsonProperty'或者这样,我真的很想使用配置类禁用这个异常。
以下是我的依赖项:
<dependencies>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.4.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>3.0.4.Final</version>
</dependency>
</dependencies>
由于RESTEasy是一个JAX-RS实现,因此可以使用JAX-RS方式定制Jackson的ObjectMapper:
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
/**
* ContextResolver that automatically configures and provides {@link ObjectMapper} used by Jackson.
*/
@Provider
public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> {
private final ObjectMapper objectMapper = new ObjectMapper()
.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
@Override
public ObjectMapper getContext(Class<?> type) {
return objectMapper;
}
}
我尝试调用一个url谁接受列表。 发送的数据为 “{”时间戳“:1445958336633,”状态“:400,”错误“:”错误请求“,”异常“:”org.springframework.http.converter.httpmessagenotreadableException“,”消息“:”无法读取文档:无法反序列化START_OBJECT令牌之外的java.util.arraylist实例\n
使用Dropwizard框架构建API,我使用Jackson ObjectMapper遇到了这个反序列化问题。我同时使用Joda Time和Joda Money。对于JodaTime,定义JodaModule足以解决反序列化问题。但对于JodaMoney来说,JodaModule不足以解决反序列化问题(如果我错了,请纠正我)。因此,我为JodaTime保留了JodaModule,创建了JodaMo
我的Spring Boot API使用camelCase,但我需要通过我的API将一些请求代理到使用snake_case的第三方API。是否可以将Jackson配置为从snake_case反序列化第三方响应,然后将其序列化回camelCase到我的前端? 所需功能的逐步示例: 示例对象: 我调用我的API API调用第三方 第三方返回 我的API将其反序列化为 我的API序列化对象并返回 现在我使
问题内容: 我无法找出使用杰克逊实现自定义序列化/反序列化的正确方法。我有很多类(〜50),它们带有应被序列化/反序列化而不是原始的原始字段。喜欢: 所有序列化和反序列化都非常相似,我只需要在整数之后添加一个后缀(C,页面,米等)。 一种简单的方法是在每个这样的字段中添加一对/ 注释并实现它们。但是我最终会得到100个 非常相似的 序列化器/反序列化器。 我想到了添加自定义注释的各个领域,说或,这
可以序列化/反序列化< code >映射吗 在这种特殊情况下,我知道总是,和 - 第三方类(我有序列化器和反序列化器),其他值是盒装原语。 有可能和杰克逊做这样的事吗?使用MapSerializer/MapDeserializer可以做到这一点吗?(我找不到任何例子)
主要内容:1 编写核心类,2 运行测试本文讲解如何将一个Java对象序列化为一个json文件,然后读取该json文件读取回对象。在下面的示例中,我们创建Student类。使用Jackson存储到一个student.json文件,该文件拥有Student对象的JSON表示形式。 1 编写核心类 MainApp: 2 运行测试