【发布时间】:2015-03-01 06:36:03
【问题描述】:
当我单击生成云端点客户端库时,我在错误日志中收到以下内容。
java.lang.reflect.InvocationTargetException
at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:82)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Caused by: com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmGenerationException: com.google.api.server.spi.config.validation.MissingParameterNameException: tuberservice.com.rune.tuber.server.TuberServiceImpl.TuberServiceImpl.getInitParameter parameter (type class java.lang.String): Missing parameter name. Parameter type (class java.lang.String) is not an entity type and thus should be annotated with @Named.
at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createSwarmApi(SwarmApiCreator.java:292)
at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmServiceCreator.create(SwarmServiceCreator.java:444)
at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:80)
... 1 more
Caused by: com.google.api.server.spi.config.validation.MissingParameterNameException: tuberservice.com.rune.tuber.server.TuberServiceImpl.TuberServiceImpl.getInitParameter parameter (type class java.lang.String): Missing parameter name. Parameter type (class java.lang.String) is not an entity type and thus should be annotated with @Named.
at com.google.api.server.spi.config.validation.ApiConfigValidator.validateApiParameter(ApiConfigValidator.java:271)
at com.google.api.server.spi.config.validation.ApiConfigValidator.validateParameter(ApiConfigValidator.java:229)
at com.google.api.server.spi.config.validation.ApiConfigValidator.validateMethod(ApiConfigValidator.java:169)
at com.google.api.server.spi.config.validation.ApiConfigValidator.validateMethods(ApiConfigValidator.java:130)
at com.google.api.server.spi.config.validation.ApiConfigValidator.validate(ApiConfigValidator.java:93)
at com.google.api.server.spi.config.validation.ApiConfigValidator.validate(ApiConfigValidator.java:63)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.writeConfig(JsonConfigWriter.java:102)
at com.google.api.server.spi.tools.AnnotationApiConfigGenerator.generateConfig(AnnotationApiConfigGenerator.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createSwarmApi(SwarmApiCreator.java:288)
... 3 more
这是我的服务实现
@SuppressWarnings("serial")
@Api(name = "tuberservice")
public class TuberServiceImpl extends RemoteServiceServlet implements
TuberService {
@Override
@ApiMethod(name = "addClient")
public String addClientService(TuberClient t) {
if (t != null){
PersistenceManager pm = PMF.get().getPersistenceManager();
pm.makePersistent(t);
pm.close();
return t.toString();
}
return "Invalid client";
}
@SuppressWarnings("unchecked")
@Override
@ApiMethod(name = "listClients")
public TuberClient[] listAllClientsService() {
// TODO Auto-generated method stub
//select from TuberClient
PersistenceManager pm = PMF.get().getPersistenceManager();
Query q = pm.newQuery(TuberClient.class);
List<TuberClient> list = (List<TuberClient>) q.execute();
ArrayList<TuberClient> returnList = new ArrayList<TuberClient>();
for (TuberClient t : list){
returnList.add(t);
}//end for
pm.close();
return (TuberClient[])returnList.toArray(new TuberClient[0]);
}
}
我已经为这个问题寻找了几个小时的解决方案。我尝试恢复到 appengine1.8.8,但它没有用,我尝试重建、清理等,没有,我什至尝试部署到 appengine,但没有用。
我真的不知道从哪里开始解决错误,因为我的服务器实现中没有任何要注释的字符串,所以我总体上很困惑。
【问题讨论】:
标签: google-app-engine gwt google-cloud-endpoints