【发布时间】:2014-03-07 09:47:12
【问题描述】:
我是 App Engine 应用程序开发的新手。我想在我的实体端点类中创建自定义方法。为此,我使用@ApiMethod 注释在端点类中定义自定义方法。问题是当我从我的android 客户端调用此方法时,它会抛出IOException。我不知道我的代码有什么问题。请指导我。
谢谢。
端点代码:
@Api(name = "feedmasterendpoint", namespace = @ApiNamespace(ownerDomain = "sampleregistrationapp.com", ownerName = "sampleregistrationapp.com", packagePath = ""))
public class FeedMasterEndpoint {
@SuppressWarnings("unchecked")
@ApiMethod(name = "getUserFeed", httpMethod = HttpMethod.GET)
public ArrayList<String> getUserFeed(@Named("userId_fk") String id) {
EntityManager mgr = null;
ArrayList<String> feedList = new ArrayList<String>();
try {
mgr = getEntityManager();
Query query = mgr
.createQuery("select f.feedUrl from FeedMaster f where f.userId_fk= :userId");
query.setParameter("userId", id);
feedList = (ArrayList<String>) query.getResultList();
} finally {
mgr.close();
}
return feedList;
}
}
Android 客户端代码:
StringCollection urlList = new StringCollection();
Feedmasterendpoint.Builder builder = new Feedmasterendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(), new HttpRequestInitializer() {
public void initialize(HttpRequest arg0)
throws IOException {
}
});
Feedmasterendpoint endpoint = CloudEndpointUtils.updateBuilder(
builder).build();
urlList = endpoint.getUserFeed(params[0]).execute(); //It throws IOException
【问题讨论】:
-
我不使用端点,所以我不能确定,但你不是要重新生成客户端源代码,然后在更改服务器 API 后重新编译它吗?
-
是的,我正在从这个端点类生成客户端库并重新编译我的代码一百次,但它没有解决我的问题。
-
是的,但是有什么问题? IO异常?但它来自哪里?堆栈跟踪异常?
标签: java android google-app-engine jpa google-cloud-datastore