生成云端点时出错java客户端lib:“'JavaApi'对象没有属性'_class_name'”

时间:2013-10-02 22:12:03

标签: google-cloud-endpoints

我是谷歌云端点的新手。我有一个基本项目在服务器端工作,有一个端点和一个方法。我可以从API Explorer中成功执行该方法。

所以现在我想生成一个用于Android应用程序的客户端库。我跑的时候

mvn appengine:endpoints_get_client_lib

我得到下面的错误输出。有趣的是它说''JavaApi'对象没有属性'_class_name'“。我不确定它在这里指的是什么;我的代码中没有任何名为“JavaApi”的东西,所以它必须是一些中间生成的代码。

有什么想法吗?

[INFO] --- appengine-maven-plugin:1.8.3:endpoints_get_client_lib(default-cli)@ web-service-public ---

[INFO]

[INFO] Google App Engine Java SDK - 生成端点获取客户端lib

[INFO]使用类名:com.getfitivity.webservice.pub.resource.TrainingProgramResource

[INFO]执行端点Command = [get-client-lib,-cp,C:\ Users \ Andy \ Dev \ projects \ fitivity \ fitivity-service \ web-service-public \ target \ classes; C:\用户\安迪\开发\项目\ fitivity \ fitivity服务\ web服务公开\目标/类; C:\用户\ Andy.m2 \库\ COM \ getfitivity \ web服务共用\ 1.0-SNAPSHOT \幅-service-共同-1.0-SNAPSHOT.jar; C:\用户\ Andy.m2 \库\ COM \谷歌\应用服务引擎\应用服务引擎的API-1.0-SDK \ 1.8.3 \应用服务引擎的API-1.0-SDK-1.8。 3.jar; C:\用户\ Andy.m2 \库\ COM \谷歌\应用服务引擎\应用服务引擎的端点\ 1.8.3 \应用服务引擎的端点-1.8.3.jar; C:\用户\ Andy.m2 \库\ javax \ inject \ javax.inject \ 1 \ javax.inject-1.jar,-o,C:\ Users \ Andy \ Dev \ projects \ fitivity \ fitivity-service \ web-service-public \ target / generated-sources / appengine-endpoints / WEB-INF,-w,C:\ Users \ Andy \ Dev \ projects \ fitivity \ fitivity-service \ web-service-public \ target / generated-sources / appengine-endpoints,-l,java,com .getfitivity.webservice.pub.resource.TrainingProgramResource] 2013年10月2日下午5:59:47 com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml

信息:已成功处理C:\ Users \ Andy \ Dev \ projects \ fitivity \ fitivity-service \ web-service-public \ target / generated-sources / appengine-endpoints \ WEB-INF / appengine-web.xml 写入C:\ Users \ Andy \ Dev \ projects \ fitivity \ fitivity-service \ web-service-public \ target \ generated-sources \ appengine-endpoints \ WEB-INF / public-v1.api的API配置 API发现文档写入./public-v1-rest.discovery

[ERROR] com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException:500内部服务器错误

{“error”:{“message”:“内部服务器错误”,“代码”:500,“错误”:[{“message”:“未知异常”,“debug_info”:“'JavaApi'对象有没有属性'_class_name'“}]}}

在com.google.appengine.repackaged.com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1050) 在com.google.api.server.spi.tools.CloudClientLibGenerator.postRequest(CloudClientLibGenerator.java:53) 在com.google.api.server.spi.tools.CloudClientLibGenerator.generateClientLib(CloudClientLibGenerator.java:44) 在com.google.api.server.spi.tools.GenClientLibAction.genClientLib(GenClientLibAction.java:67) 在com.google.api.server.spi.tools.GetClientLibAction.getClientLib(GetClientLibAction.java:79) 在com.google.api.server.spi.tools.GetClientLibAction.execute(GetClientLibAction.java:55) 在com.google.api.server.spi.tools.EndpointsTool.execute(EndpointsTool.java:67) 在com.google.api.server.spi.tools.EndpointsTool.main(EndpointsTool.java:93) 在com.google.appengine.endpoints.EndpointsMojo.executeEndpointsCommand(EndpointsMojo.java:91) 在com.google.appengine.endpoints.EndpointsGetClientLib.execute(EndpointsGetClientLib.java:55)

[...无意义的堆栈级别被省略...]

2 个答案:

答案 0 :(得分:4)

想出来。问题是我的API名称,如

@Api(name = "foo")

是一个java关键字(在我的情况下是“public”,因为我定义的是公共Web服务API,而不是管理的,内部使用的)。

我尝试了其他一些java关键字,例如“private”,“static”,“for”和“switch”,并得到了同样的错误。

答案 1 :(得分:1)

更新您的pom.xml文件以使用该插件的1.8.4版并尝试运行

mvn clean install appengine:endpoints_get_client_lib进行完全重建。