【问题标题】:More info on Cloud Endpoints return types有关 Cloud Endpoints 返回类型的详细信息
【发布时间】:2013-12-09 21:28:18
【问题描述】:

根据the documentation

返回值类型不能是String、int等简单类型。返回值需要是 POJO、数组或 Collection。

这正是本地开发服务器上的工作方式。然而,一旦部署,原始类型的集合和数组会导致500 Internal Server Error,无论是在浏览器中输入GET URL 还是使用API​​ 资源管理器,尽管服务器日志显示200 Success。 POJO 集合运行良好。

这种情况已经持续了几个月,并通过不同的方法进行了多次尝试。这是预期的行为还是错误?

【问题讨论】:

    标签: java google-app-engine google-cloud-endpoints


    【解决方案1】:

    我想我最近遇到了同样的事情。我尝试从端点返回一个字符串集合或数组。它似乎可以工作 - 它生成了我的客户端代码而没有错误,并创建了专门用于处理该类型的代码(换句话说,是的,它们意味着它可以工作)。但是,一旦部署它就不起作用了。

    最终我从春季(现在找不到)中找到了一个 SO Q/A,其中 Google 意识到了这个错误,但我猜他们仍然没有修复它或更改文档。

    [编辑:我找到了我正在考虑的帖子]。在 2013 年 3 月的 this post 中,Google 的 Dan Holevoet 最初建议使用实体集合,但发现这不起作用,因此建议将集合包装在临时类中作为解决方法。再加上我上面的经验(它生成了一个 StringCollection,因为我试图使用字符串集合),这让我得出结论,这是一个已知问题。

    【讨论】:

    • 谢谢。我很高兴这是一个错误以及他们正在研究的东西。同时,我只返回一组 POJO,然后在前端创建一个属性数组,但是随着 POJO 的大小和数量的增加,这将变得越来越繁重。此外,此错误使您的答案无效here
    • 啊,很好地抓住了另一个答案 - 我将在那里添加一个更正。顺便说一句,我并不是说他们正在努力解决问题——只是他们知道这一点。
    • 您引用的我的帖子指的是方法参数,而不是返回类型。在可预见的将来,在一个帖子正文中支持多个实体(没有包装器)是行不通的。
    • 我认为文档需要更新为“返回值需要是 POJO 或 POJO 的集合。”
    • 而且 IMO 客户端代码生成应该失败 - 如果返回类型不受支持。代码生成错误消息现在好多了 - 代码生成期间的错误会为我节省很多时间。
    猜你喜欢
    • 2022-08-22
    • 1970-01-01
    • 2012-06-30
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    相关资源
    最近更新 更多