gpt4 book ai didi

java - 部署时出现 GAE 端点错误 500

转载 作者:行者123 更新时间:2023-11-30 04:02:42 25 4
gpt4 key购买 nike

我只是创建了一个小型端点后端服务,并且在本地主机上运行良好。但是当应用程序部署到 GAE 时,我收到内部服务器错误:

我将我的类编辑得尽可能简单,但没有任何区别。这是我的代码:

@Api(name = "meetApp", version = "v1")
public class RegisteredUsers {

@ApiMethod(name = "users.list", httpMethod = "get")
public String[] getRegisteredUsers(){
return new String [] {"test"};
}

这是错误消息,在管理控制台上,请求被标记为正常 (200)。

enter image description here

最佳答案

您无法返回基元或任何基元集合/数组,但 SDK 尚未更新,无法阻止您在执行此操作时在本地构建应用程序或进行测试。您需要创建一个 POJO:

public class MyArray() {
private String[] strings;
public MyArray(String[] strings) {
this.strings = strings;
}
}

那么你的方法就变成了

public MyArray getRegisteredUsers(){
return new MyArray(new String[]{'test'});
}

然后,无论您在何处接收对象,都必须以 myArray.strings[0] 的形式访问 String

愚蠢,我知道。请参阅my question here更多细节。您会在答案的评论中看到@DanHolevoet(他在 Cloud Endpoints 上工作,花时间编辑您的问题但没有回答它)确认您无法返回基元集合。

坦白说,我不知道为什么会这样。在this same question I asked 4 months ago的回答中@JoSo 表示

That actually makes sense when you think about how appengine should go about and serialize that stuff to json.

我对这个问题不了解,但我不同意。据我了解,JavaScript 数组与对象相同,只是具有枚举属性而不是命名属性,因此字符串数组应该易于序列化和解释。如果本地开发服务器可以做到...

我会停止咆哮。我确信有充分的理由不允许这样做。但我有兴趣知道它是什么,因为它非常有用。

编辑:改进代码

关于java - 部署时出现 GAE 端点错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21563263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com