【问题标题】:Spring-MVC: Return ResponseEnvelopeSpring-MVC:返回响应信封
【发布时间】:2019-05-31 07:12:07
【问题描述】:

使用 Spring,如何正确接收以下 POST 请求,以便返回结果?

public ResponseEnvelope sendHalfMap(GameID gameID, PlayerID playerID) throws Exception
  {
    java.util.List<HalfMapNode> mapNodes = MapGenerator.generator();
    HalfMap halfMapMessageBody = new HalfMap(playerID.getID(), mapNodes);

    URL halfMapUrl = new URL(baseUrl, "game/" + gameID.getID() + "/halfmap");

    RestTemplate restTemplate = getRestTemplate();
    ResponseEnvelope requestResult = (ResponseEnvelope)restTemplate.postForObject(halfMapUrl.toURI(), halfMapMessageBody, ResponseEnvelope.class);

    return requestResult;
  }

【问题讨论】:

  • HalfMap 类是您创建的还是来自另一个库?如果是您自己创建的,能否请您发布它的源代码?
  • @Justin Albano 感谢您的观看。插入上面。
  • 能否把HalfMapNode的源代码也发一下?
  • @JustinAlbano 编辑器不让我贴更多代码,但这里有一个链接:pastebin.com/migpH79B

标签: java spring-mvc


【解决方案1】:

在异常消息中可以看到问题:

Main.NewMapNode does not have a no-arg default constructor.

如果类 NewMapNode 没有默认的无参数构造函数,则 Spring MVC 框架将无法为 NewMapNode 创建 JAXB 上下文,因此会失败。如果无法为该类创建默认的无参数构造函数,请参阅 this SO answer 了解如何创建客户 XmlAdapter

【讨论】:

  • 你完全正确,原来我导入了错误的 HalfMap 实现。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
相关资源
最近更新 更多