部署时,我的一个云端点方法出现500内部服务器错误

我的所有Cloud Endpoints方法都在本地工作,并且在部署应用程序时,所有方法都可以工作。 这是方法:

@ApiMethod(name = "listUrl", path ="article/urls", httpMethod = HttpMethod.GET) public String[] listUrl() { List
articles = getArticleList(); String[] urlArray = new String[articles.size()]; int i = 0; for (Article article : articles) urlArray[i++] = article.getUrl(); return urlArray; }

我知道三个接受的返回类型是“POJO,数组或集合”。 但我认为也许String[]导致错误,所以尝试返回String的集合。

 @ApiMethod(name = "listUrl", path ="article/urls", httpMethod = HttpMethod.GET) public CollectionResponse/*String[]*/ listUrl() { List
articles = getArticleList(); List urls = new ArrayList(); //String[] urlArray = new String[articles.size()]; //int i = 0; for (Article article : articles) urls.add(article.getUrl()); //urlArray[i++] = article.getUrl(); return /*urlArray*/ CollectionResponse. builder().setItems(urls).build(); }

但无济于事。 我继续得到“500内部服务器错误”。

500内部服务器错误 最离奇的部分是,当我查看管理控制台中的日志时,它表明请求通过正常:

 2013-09-22 22:08:00.715 /_ah/spi/com.example.hiserver.ArticleEndpoint.listUrl 200 55ms 0kb Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:23.0) Gecko/20100101 Firefox/23.0 xx.xxx.xx.xxx(my IP) - - [22/Sep/2013:22:08:00 -0700] "POST /_ah/spi/com.example.hiserver.ArticleEndpoint.listUrl HTTP/1.1" 200 129 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:23.0) Gecko/20100101 Firefox/23.0" "hylyt-it.appspot.com" ms=56 cpu_ms=21 cpm_usd=0.000014 app_engine_release=1.8.4 instance=00c61b117cdf561948b997f4ec6be2ca72c139d1 

基于willmas评论,我摆弄了我的代码,发现你不能使用generics作为返回参数。 当你想到引擎应该如何进行并将这些东西序列化为json时,这实际上是有意义的。 然后,当它在本地devserver上工作时它不会。 无论如何,在我的情况下,我使用的List在本地开发服务器上工作正常,但在部署时却没有。 解决方案是创建一个

 public class StringResult { private String result; /* getters and setters */ } 

在你的情况下你可以使用

 public class StringArrayResult { private String[] result; /* getters and setters */ } 

谢谢@willma指向正确的方向。