ryc*_*chu 5 jax-rs resteasy jackson jboss7.x
我有两个休息的webapps我想在Jboss 7.1.1上部署.服务器.
两个应用程序中的休息请求都会产生并消耗Json.我使用jackson提供程序来序列化和反序列化对象.
现在,我需要为每个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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在jboss上只部署其中一个项目时,它运行良好.当我尝试部署两者时,只有第一个初始化项目使用定义的objectMapper.其他人从不从ContextResolver类调用getContext方法.我该怎么办?
编辑!:
经过大量的试验,我决定改变从杰克逊到斯塔克森解析json的方法.我希望至少这种方法能够很好地运作.但不是......序列化在两个部署的应用程序上都能完美运行 但同样,jboss决定在反序列化过程中使用jackson而不是staxon.同样总是在部署后我首先调用的应用程序运行良好.但第二个使用杰克逊(不知道为什么......)调用异常.总是...
Jboss有什么问题吗?可能我只是做错了什么但我不知道在哪里.有人知道我应该在哪里看?
看来我找到了解决此问题的方法。这是resteasy的已知问题,可以通过内置选项删除:
为了解决这个问题,我只需要在项目的web.xml中添加参数:
<context-param>
<param-name>resteasy.use.deployment.sensitive.factory</param-name>
<param-value>false</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
我在Resteasy jira中找到了此解决方案。我真的很奇怪,任何jboss或resteasy相关文档中都没有信息...
归档时间: |
|
查看次数: |
2528 次 |
最近记录: |