如何在Wildfly中configurationJackson?
我有一个会话Bean与以下方法:
@POST @Consumes("application/x-www-form-urlencoded") @Path("/calculate") @Produces("application/json") public CalculationResult calculate(@FormParam("childProfile") String childProfile, @FormParam("parentProfile") String parentProfile) { ... }
返回的CalculationResult不能映射到JSON并发生以下exception:
Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class com.test.UniqueName and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)...
我如何在Wildfly中configurationJackson及其SerializationFeature
?
“我怎样才能在Wildfly中configurationJackson及其SerializationFeature?
您不需要在Wildfly中configuration它,您可以在JAX-RS应用程序中configuration它。 只需使用ContextResolver
来configurationObjectMapper
(详情见这里 )。 就像是
@Provider public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> { private final ObjectMapper mapper; public ObjectMapperContextResolver() { mapper = new ObjectMapper(); mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); } @Override public ObjectMapper getContext(Class<?> type) { return mapper; } }
如果你还没有Jackson的依赖,就需要这个,就像编译时的依赖关系一样
<dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson-provider</artifactId> <version>3.0.8.Final</version> <scope>provided</scope> </dependency>
如果您正在使用扫描来发现您的资源类和提供程序类,则应自动发现ContextResolver
。 如果你明确地注册了所有的资源和提供者,那么你也需要注册这个。 它应该被注册为一个单身人士。
UPDATE
正如@KozProv在评论中提到的那样,它实际上应该是resteasy-jackson2-provider
作为Maven依赖项的artifactId。 -jackson-
使用旧的org.codehaus
(Jackson 1.x),而-jackson2-
使用新的com.fasterxml
(Jackson 2.x)。 Wild by默认使用jackson2版本。
Wild 9
的pom.xml
<dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson2-provider</artifactId> <version>3.0.8.Final</version> <scope>provided</scope> </dependency>
Java类
@com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true) public class SomePojo implements Serializable { }
- 为什么当一个构造函数用@JsonCreator注解时,它的参数必须用@JsonProperty注解?
- jackson和genericstypes的参考
- 在序列化Hibernate对象时引发奇怪的jacksonexception
- jackson禁用fail_on_empty_beans
- 将一个Map <String,String>转换为一个POJO
- 在使用RestTemplate时,我们如何configuration内部的Jackson映射器?
- 使用Jackson将JSON反序列化为带有重载方法的对象
- 不能从START_OBJECT标记反序列化java.util.ArrayList的实例
- jacksonVS. Gson