我有两个想要在 Jboss 7.1.1 上部署的其余 web 应用程序。服务器。
两个应用程序中的休息请求都会产生和使用 Json。我使用杰克逊提供者来序列化和反序列化对象。
现在,我需要为每个 webapp 自定义 ObjectMapper 配置。所以为了解决这个问题,我添加了实现 ContextResolver 的 @Provider 类。每个项目一个。铁。我的一个班级看起来像这样:
@provider
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class JacksonConfig implements ContextResolver<ObjectMapper> {
private final ObjectMapper objectMapper;
public JacksonConfig()
{
objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
}
@Override
public ObjectMapper getContext(Class<?> objectType) {
return objectMapper;
}
}
当我在 jboss 上仅部署其中一个项目时,它运行良好。当我尝试部署两者时,只有第一个初始化的项目使用定义的 objectMapper。另一种从不调用 ContextResolver 类的 getContext 方法。我能做错什么?
编辑!:
经过大量试验后,我决定将解析 json 的方法从 jackson 更改为 staxon。我希望至少这种方法能很好地工作。但不是......序列化在两个部署的应用程序上都能完美运行。但同样,不知何故 jboss 决定在反序列化过程中使用 jackson 而不是 staxon。再次,我在部署后首先调用的应用程序运行良好。但是第二个使用杰克逊(不知道为什么......)调用异常。总是...
Jboss有问题吗?可能我只是做错了什么,但我不知道在哪里。有人知道我应该去哪里看吗?