Jakarta ee 在JavaEE应用程序中注册jacksonmixin
在JavaEE应用程序中使用Jackson作为JAXB提供者的基础上:如何注册我的JAXB 在使用JAX-RS客户机特性的我的客户机应用程序中,它是自动注册的。我看到了,但是我从哪里获得ObjectMapper?我已经尝试在ServletContextListener中创建并在那里注册模块。当然,映射器实例将在contextInitialized方法结束后被释放。使用ContextResolver,如中所示。使用@Provider注释,应该从扫描中提取ContextResolver,假设您使用的是某种扫描;包扫描或类路径扫描Jakarta ee 在JavaEE应用程序中注册jacksonmixin,jakarta-ee,jaxb,jackson,jax-rs,mixins,Jakarta Ee,Jaxb,Jackson,Jax Rs,Mixins,在JavaEE应用程序中使用Jackson作为JAXB提供者的基础上:如何注册我的JAXB 在使用JAX-RS客户机特性的我的客户机应用程序中,它是自动注册的。我看到了,但是我从哪里获得ObjectMapper?我已经尝试在ServletContextListener中创建并在那里注册模块。当然,映射器实例将在contextInitialized方法结束后被释放。使用ContextResolver,如中所示。使用@Provider注释,应该从扫描中提取ContextResolver,假设您使用的
@Provider
public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> {
final ObjectMapper mapper = new ObjectMapper();
public ObjectMapperContextResolver() {
mapper.registerModule(new MixinModule());
}
@Override
public ObjectMapper getContext(Class<?> type) {
return defaultMapper;
}
}
发生的情况是,Jackson JAX-RS提供商提供的MessageBodyReader/MessageBodyWrite将调用getContext方法,以获取ObjectMapper非常感谢@peeskillet