Different response when application deployed in jBoss 6.2 vs jBoss 7.3(在JBoss 6.2和JBoss 7.3中部署应用时的不同响应)
问题描述
我们最近已将JBoss EAP从6.2升级到7.3.0。
升级后,我们观察到应用程序开始运行异常。我们使用的是Spring框架版本4.1.9.RELEASE。
例如:
@RestController
public class CommonController{
@RequestMapping(value = "/rest/report/testResponse", method = RequestMethod.GET)
public @ResponseBody List<Entry<String, Number>> getData(){
List<Entry<String, Number>> technologyList = new ArrayList<>();
SimpleEntry<String, Number> simpleEntry1 = new AbstractMap.SimpleEntry<String,Number>("Java",1);
SimpleEntry<String, Number> simpleEntry2 = new AbstractMap.SimpleEntry<String,Number>("Spring",2);
technologyList.add(simpleEntry1);
technologyList.add(simpleEntry2);
return technologyList;
}
}
在JBoss 6.2中部署应用程序时,我得到的响应是:
[
{
"key": "Java",
"value": 1
},
{
"key": "Spring",
"value": 2
}
]
当应用程序现在部署到JBoss 7.3中时,我得到的响应是:
[
{
"Java": 1
},
{
"Spring": 2
}
]
正如您所看到的,上面两个回答有细微的差别。这破坏了我的前端代码,因为现在在jBoss7中,我们没有得到带有键/值前缀的响应:
<ui-select-choices repeat="obj.value as obj in technologyList | orderBy:'key'">
<div class ="small" ng-bind-html="obj.key" title ="{{obj.key}}"></div>
</ui-select-choices>
我们不能修改后端/前端代码,因为应用程序已经在生产中运行,不可能在许多地方更改代码。我们只想升级JBoss版本。
任何遇到类似问题的人,请评论/建议解决方案。
推荐答案
这是杰克逊的问题,默认情况下用于序列化。
这里是release将更改带给杰克逊的时候。您面临的问题也在Jackson 2.5
的兼容性问题中提到JBoss 7.3可能附带了一个已经包含的Jackson库,所以这就是您会受到影响的地方。选中此处如何exclude provided Jackson from JBoss 7
然后使用早于2.5的Jackson库打包您的应用程序,并再次部署它。
这篇关于在JBoss 6.2和JBoss 7.3中部署应用时的不同响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在JBoss 6.2和JBoss 7.3中部署应用时的不同响应
基础教程推荐
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01