我们最近将 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
}
]
正如您所看到的,上述两个响应存在细微差别。这破坏了我的前端代码,我们在其中使用了如下所示的 javascript 代码,因为现在在 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版本。
任何人遇到类似的问题,请发表评论/建议解决方案。