我是谷歌云端点的新手。我有一个基本项目在服务器端工作,有一个端点和一个方法。我可以从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)
[...无意义的堆栈级别被省略...]
答案 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
进行完全重建。