gpt4 book ai didi

java - 将 google appengine datastore.key 与 REST 结合使用时出错

转载 作者:行者123 更新时间:2023-12-01 15:20:31 25 4
gpt4 key购买 nike

我正在构建一个 REST 应用程序,使用 AppEngine 数据存储作为持久层。但是,在解析 key 以创建新条目时,我在资源类中使用 com.google.appengine.api.datastore.Key 时遇到问题。

错误信息如下:严重:索引 0 处的参数处缺少方法 public com.acolsolutions.loyaltycard.persistence.entities.Card com.acolsolutions.loyaltycard.resources.CardResource.findByKey(com.google.appengine.api.datastore.Key) 的依赖项严重:方法,public com.acolsolutions.loyaltycard.persistence.entities.Card com.acolsolutions.loyaltycard.resources.CardResource.findByKey(com.google.appengine.api.dat astore.Key),使用资源 GET 注释,类 com .acolsolutions.loyaltycard.resources.CardResource 未被识别为有效的资源方法。

看来问题就出在这里。似乎该值无法转换为 Key 类型:


public Card findByKey(@PathParam("key") Key key) {
...
}

我的 REST 类如下所示:导入java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.acolsolutions.loyaltycard.dataobjects.CardDAO;
import com.acolsolutions.loyaltycard.persistence.entities.Card;
import com.google.appengine.api.datastore.Key;

@Path("/cards")
public class CardResource {
CardDAO dao = new CardDAO();

@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public List<Card> findAll() {
System.out.println("findAll");
return dao.findAll("creationDate desc");
}

@GET
@Path("search/{query}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public List<Card> findByName(@PathParam("query") String query) {
System.out.println("findByName: " + query);
return dao.findByName(query, "creationDate desc");
}


@GET
@Path("{key}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Card findByKey(@PathParam("key") Key key) {
//System.out.println("findByKey " + key.toString());
return dao.findByKey(key);
}

有人可以告诉我我必须做什么才能让它正常工作吗?

谢谢,克里斯

最佳答案

您可以尝试将参数更改为 String 而不是 Key,然后使用 com.google.appengine.api.datastore.KeyFactory.stringToKey(String stringKey) 获取 Key。

关于java - 将 google appengine datastore.key 与 REST 结合使用时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10987420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com