- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在生成的 Endpoint 类中创建一些新方法,但发现了这种奇怪的行为:我可以向生成的类添加一个方法,但我无法添加其中两个方法,无论我选择这两个方法中的哪一个添加。这是我生成的类的代码,我在其中添加了两个添加方法的代码:
package it.raffaele.bills;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import javax.annotation.Nullable;
import javax.inject.Named;
import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityNotFoundException;
import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.response.CollectionResponse;
import com.google.appengine.api.datastore.Cursor;
import com.google.appengine.datanucleus.query.JDOCursorHelper;
@Api(name = "utenteendpoint")
public class UtenteEndpoint {
/**
* This method lists all the entities inserted in datastore.
* It uses HTTP GET method and paging support.
*
* @return A CollectionResponse class containing the list of all entities
* persisted and a cursor to the next page.
*/
@SuppressWarnings({ "unchecked", "unused" })
public CollectionResponse<Utente> listUtente(
@Nullable @Named("cursor") String cursorString,
@Nullable @Named("limit") Integer limit) {
PersistenceManager mgr = null;
Cursor cursor = null;
List<Utente> execute = null;
try {
mgr = getPersistenceManager();
Query query = mgr.newQuery(Utente.class);
if (cursorString != null && cursorString != "") {
cursor = Cursor.fromWebSafeString(cursorString);
HashMap<String, Object> extensionMap = new HashMap<String, Object>();
extensionMap.put(JDOCursorHelper.CURSOR_EXTENSION, cursor);
query.setExtensions(extensionMap);
}
if (limit != null) {
query.setRange(0, limit);
}
execute = (List<Utente>) query.execute();
cursor = JDOCursorHelper.getCursor(execute);
if (cursor != null)
cursorString = cursor.toWebSafeString();
// Tight loop for fetching all entities from datastore and accomodate
// for lazy fetch.
for (Utente obj : execute)
;
} finally {
mgr.close();
}
return CollectionResponse.<Utente> builder().setItems(execute)
.setNextPageToken(cursorString).build();
}
/**
* This method gets the entity having primary key id. It uses HTTP GET method.
*
* @param id the primary key of the java bean.
* @return The entity with primary key id.
*/
public Utente getUtente(@Named("id") Long id) {
PersistenceManager mgr = getPersistenceManager();
Utente utente = null;
try {
utente = mgr.getObjectById(Utente.class, id);
} finally {
mgr.close();
}
return utente;
}
/**
* This inserts a new entity into App Engine datastore. If the entity already
* exists in the datastore, an exception is thrown.
* It uses HTTP POST method.
*
* @param utente the entity to be inserted.
* @return The inserted entity.
*/
public Utente insertUtente(Utente utente) {
PersistenceManager mgr = getPersistenceManager();
try {
if (containsUtente(utente)) {
throw new EntityExistsException("Object already exists");
}
mgr.makePersistent(utente);
} finally {
mgr.close();
}
return utente;
}
/**
* This method is used for updating an existing entity. If the entity does not
* exist in the datastore, an exception is thrown.
* It uses HTTP PUT method.
*
* @param utente the entity to be updated.
* @return The updated entity.
*/
public Utente updateUtente(Utente utente) {
PersistenceManager mgr = getPersistenceManager();
try {
if (!containsUtente(utente)) {
throw new EntityNotFoundException("Object does not exist");
}
mgr.makePersistent(utente);
} finally {
mgr.close();
}
return utente;
}
/**
* This method removes the entity with primary key id.
* It uses HTTP DELETE method.
*
* @param id the primary key of the entity to be deleted.
* @return The deleted entity.
*/
public Utente removeUtente(@Named("id") Long id) {
PersistenceManager mgr = getPersistenceManager();
Utente utente = null;
try {
utente = mgr.getObjectById(Utente.class, id);
mgr.deletePersistent(utente);
} finally {
mgr.close();
}
return utente;
}
/********************************ADDED CODE*********************************************/
@SuppressWarnings({"cast", "unchecked"})
public List<Bill> getUserBillsByTag(@Named("tag") String tag){
PersistenceManager mgr = getPersistenceManager();
Utente utente = null;
List<Bill> list = new LinkedList<Bill>();
try {
Query q = mgr.newQuery(Utente.class);
q.setFilter("nfcID == '" + tag +"'");
List<Utente> utenti = (List<Utente>) q.execute();
if (!utenti.isEmpty()){
for (Utente u : utenti){
list.addAll(u.getBollettini());
break; //fake loop.
}
}else{
//handle error
}
} finally {
mgr.close();
}
return list;
}
@SuppressWarnings({"cast", "unchecked"})
public List<Bill> getUserBills(@Named("id") Long id){
Utente utente = getUtente(id);
System.out.println(utente);
List<Bill> list = utente.getBollettini();
return list;
}
/*******************************************************************************/
private boolean containsUtente(Utente utente) {
PersistenceManager mgr = getPersistenceManager();
boolean contains = true;
try {
mgr.getObjectById(Utente.class, utente.getId());
} catch (javax.jdo.JDOObjectNotFoundException ex) {
contains = false;
} finally {
mgr.close();
}
return contains;
}
private static PersistenceManager getPersistenceManager() {
return PMF.get().getPersistenceManager();
}
}
你知道如何帮助我吗?我错过了什么吗?
最佳答案
您的方法具有相同的 API 描述 (path="utenteendpoint/{param}"
)。给其中一个不同的路径:
@ApiMethod(path="utenteendpoint/tag/{tag}/")
public List<Bill> getUserBillsByTag(@Named("tag") String tag) { ... }
@ApiMethod(path="utenteendpoint/user/{id}/")
public List<Bill> getUserBills(@Named("id") Long id) { ... }
关于java - 无法在 Google Cloud Endpoints 的 Endpoint 类中创建多个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15157237/
我正在使用 winsock 和 C++ 来设置服务器应用程序。我遇到的问题是对 listen 的调用会导致第一次机会异常。我想通常这些可以忽略(?),但我发现其他人也有同样的问题,它导致应用程序偶尔挂
我对 Wireguard 的理解是服务器和客户端的接口(interface)(虽然看起来听不清?)每个都有自己的 .conf 文件。例如,考虑以下 .conf 文件。 [Interface] Priv
如何将多个实体从客户端传递到 Google Cloud Endpoint? 例如,传递单个实体很容易在服务器的 Endpoint api 源文件中完成: public class SomeEndpoi
我试图建立一个路径来将文件从一个目录复制到另一个目录。但不是使用:从(文件://源目录)到(文件://目标目录)我想做这样的事情: from(direct:start) .to(direct:do
我有一个非常小的网站,在 Azure 上以共享托管配置运行。我上面有一堆涉及打开套接字的网络代码,所有这些代码都成功运行。 我编写了一些发送 ping 的代码,但抛出了 PingException,内
我试图了解如何将 Cloud Endpoints 与自定义身份验证结合使用。从文档中我了解到它从 securityDefinitions 开始: securityDefinitions: yo
我在理解有关此文档的过程中遇到了一些麻烦。位于 ... https://developers.google.com/appengine/docs/java/endpoints/consume_js 具
我一直在尝试在生成的 Endpoint 类中创建一些新方法,但发现了这种奇怪的行为:我可以向生成的类添加一个方法,但我无法添加其中两个方法,无论我选择这两个方法中的哪一个添加。这是我生成的类的代码,我
azure 中的“输入端点”和“内部端点”是什么?如何创建新的“输入端点”? &如何将数据发送到“输入端点”? 输入端点端口 65400 端口是什么? 最佳答案 输入端点是云服务和 Internet
首先,对您可能犯的语法错误表示歉意。我的英语不是很好。 我是 Spring 新手,我正在尝试创建基本身份验证安全性。 我正在尝试配置一个端点具有公共(public)访问权限,而其他端点则具有用户访问权
我试图让图标部分包含我自己的图标,而不是通过尝试猴子补丁 ApiConfigGenerator.get_descriptor_defaults 来谷歌搜索图标。不幸的是,当发现文档完成时,这些将被忽略
我正在尝试跟随初学者到 WCF 页面上的演示视频 MSDN . 第一个视频或多或少地工作得很好。我现在接近第二个视频的结尾。我使用的是 VS2010/.NET 4.0,而视频似乎使用的是 VS2008
这个问题完全来自我在这里问过(并得到回答)的相关问题:Error when trying to retrieve a single entity 据我了解,要使用已提供的辅助方法以外的属性(例如 'i
WSL1 没有问题。我想升级到 WSL 2。 当我尝试升级到 wsl2 时,命令行失败。我试图删除 Ubuntu 并重新安装它,没有区别。 虚拟机平台处于事件状态。 Windows 内部版本号:190
我有一个代理lambda函数的AWS api。我目前使用不同的端点和单独的 lambda 函数: api.com/getData --> getData api.com/addData --> add
我正在构建一个 Chrome 应用,我真的希望它能够通过云端点与我的服务器进行通信,但有两个问题我不确定如何克服: Google apis javascript 库是一个外部脚本,我无法在 Chrom
我正在我的 gke 集群上运行 kubernetes 1.9.4 我有两个 pod,gate,它正在尝试连接到 coolapp,它们都是用 elixir 编写的 我正在使用libcluster连接我的
阅读Where to place the Asynctask in the Application和 http://android-developers.blogspot.com/2009/05/pa
我不清楚 @Named 在 Google Cloud Endpoints 中的用途。文档说: This annotation indicates the name of the parameter i
我正在关注 Getting Started guide对于使用 Maven 的 Java 中的 Google Cloud Endpoints,我无法使用 API Explorer 访问我的端点。 尽管
我是一名优秀的程序员,十分优秀!