ResponseEntity在spring引导中返回字符串而不是xml类型

ResponseEntity在spring引导中返回字符串而不是xml类型,spring,tomcat,spring-boot,Spring,Tomcat,Spring Boot,我使用了spring和weblogic, 我有这样一种方法: @RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET) @ResponseBody public ResponseEntity<String> getAll(@PathVariable int parentId) { StringBuffer returnValue = new StringBuffer(""); Powe

我使用了spring和weblogic, 我有这样一种方法:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<String> getAll(@PathVariable int parentId) {
    StringBuffer returnValue = new StringBuffer("");
    Power power = iPowerService.loadByEntityId(parentId);
    makeTree(power, returnValue);
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.add("Content-Type", "text/html; charset=UTF-8");
    return new ResponseEntity<String>(returnValue.toString(), responseHeaders, HttpStatus.CREATED);
}
<201 Created,
<item text="primary" id="740167402" im0="Mehvar_V.png"
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740167402" />
</item>
<item
    text="fff"
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png"
    isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740168675" />
</item>
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t12" />
</item>
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t123" />
</item>
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t1234" />
</item>
,{Content-Type=[text/html; charset=UTF-8]}>
"<item text="primary" id="740167402" im0="Mehvar_V.png"
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740167402" />
</item>
<item
    text="fff"
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png"
    isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740168675" />
</item>
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t12" />
</item>
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t123" />
</item>
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t1234" />
</item>"
@RequestMapping(value=“/all/{parentId}”,method=RequestMethod.GET)
@应答器
公共响应属性getAll(@PathVariable int parentId){
StringBuffer returnValue=新的StringBuffer(“”);
电源=iPowerService.loadByEntityId(父ID);
makeTree(power,returnValue);
HttpHeaders responseHeaders=新的HttpHeaders();
add(“内容类型”,“text/html;charset=UTF-8”);
返回新的ResponseEntity(returnValue.toString(),responseHeaders,HttpStatus.CREATED);
}
上述方法为树生成xml格式,并将其作为响应发送给客户端,如下所示:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<String> getAll(@PathVariable int parentId) {
    StringBuffer returnValue = new StringBuffer("");
    Power power = iPowerService.loadByEntityId(parentId);
    makeTree(power, returnValue);
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.add("Content-Type", "text/html; charset=UTF-8");
    return new ResponseEntity<String>(returnValue.toString(), responseHeaders, HttpStatus.CREATED);
}
<201 Created,
<item text="primary" id="740167402" im0="Mehvar_V.png"
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740167402" />
</item>
<item
    text="fff"
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png"
    isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740168675" />
</item>
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t12" />
</item>
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t123" />
</item>
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t1234" />
</item>
,{Content-Type=[text/html; charset=UTF-8]}>
"<item text="primary" id="740167402" im0="Mehvar_V.png"
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740167402" />
</item>
<item
    text="fff"
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png"
    isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740168675" />
</item>
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t12" />
</item>
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t123" />
</item>
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t1234" />
</item>"

客户端将此响应转换为树并显示它。
它成功地工作了
当我迁移到spring boot时,此方法的响应将转换为如下字符串:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<String> getAll(@PathVariable int parentId) {
    StringBuffer returnValue = new StringBuffer("");
    Power power = iPowerService.loadByEntityId(parentId);
    makeTree(power, returnValue);
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.add("Content-Type", "text/html; charset=UTF-8");
    return new ResponseEntity<String>(returnValue.toString(), responseHeaders, HttpStatus.CREATED);
}
<201 Created,
<item text="primary" id="740167402" im0="Mehvar_V.png"
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740167402" />
</item>
<item
    text="fff"
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png"
    isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740168675" />
</item>
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t12" />
</item>
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t123" />
</item>
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t1234" />
</item>
,{Content-Type=[text/html; charset=UTF-8]}>
"<item text="primary" id="740167402" im0="Mehvar_V.png"
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740167402" />
</item>
<item
    text="fff"
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png"
    isVirtual="true">
    <item text="..." im0="leaf.gif" id="t740168675" />
</item>
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t12" />
</item>
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t123" />
</item>
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png"
    im2="Mehvar_V.png" isVirtual="true">
    <item text="..." im0="leaf.gif" id="t1234" />
</item>"
”
"
正如您所看到的,环绕着我的输出

发生了什么以及为什么会发生?
为什么我的响应会向客户端发送字符串。

我希望输出与@ResponseBody成功运行时一样

,您不必将响应封装在新的响应中,您只需执行以下操作:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET)
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public String getAll(@PathVariable int parentId) {
  StringBuffer returnValue = new StringBuffer("");
  ...
  return returnValue.toString()
}
或者,您可以删除响应主体:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET)
public ResponseEntity<String> getAll(@PathVariable int parentId) {
@RequestMapping(value=“/all/{parentId}”,method=RequestMethod.GET)
公共响应属性getAll(@PathVariable int parentId){

使用@ResponseBody,您不必用新的ResponseEntity包装您的响应,您只需执行以下操作:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET)
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public String getAll(@PathVariable int parentId) {
  StringBuffer returnValue = new StringBuffer("");
  ...
  return returnValue.toString()
}
或者,您可以删除响应主体:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET)
public ResponseEntity<String> getAll(@PathVariable int parentId) {
@RequestMapping(value=“/all/{parentId}”,method=RequestMethod.GET)
公共响应属性getAll(@PathVariable int parentId){

尝试将
products={“application/xml”,“text/xml”}
添加到
@RequestMapping
尝试将
products={“application/xml”,“text/xml”}
添加到
@RequestMapping