- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我最近将我的应用引擎 SDK 从 1.7.7.1 升级到 1.8.5,我的端点 API 停止工作。我的 API 浏览器甚至不会加载。调高日志级别后,我在尝试访问 API 资源管理器时发现了以下错误。我的工作区和谷歌应用程序引擎遇到了一些麻烦,所以我决定使用最新的应用程序引擎 SDK(1.8) .5) 我通过市场安装的。我创建了一个名为 Book 的基本实体并生成了一个名为 BookEndpoint 的端点(代码见下文),但错误仍然存在。
有什么想法吗?
FINE: started Server@4c469ca0
Oct 08, 2013 5:29:20 PM com.google.apphosting.utils.jetty.JettyLogger debug
FINE: File added: C:\Users\Daniel\workspace\wspace_rebuild\testgce\war\WEB-INF\appengine-web.xml
Oct 08, 2013 5:29:20 PM com.google.appengine.tools.development.AbstractModule startup
INFO: Module instance default is running at http:// localhost:8888/
Oct 08, 2013 5:29:20 PM com.google.appengine.tools.development.AbstractModule startup
INFO: The admin console is running at http:// localhost:8888/_ah/admin
Oct 08, 2013 1:29:20 PM com.google.appengine.tools.development.DevAppServerImpl doStart
INFO: Dev App Server is now running
Oct 08, 2013 1:29:47 PM com.google.appengine.tools.development.DevAppServerModulesFilter getCurrentModuleInstance
FINE: Exception getting module instance
com.google.appengine.api.labs.modules.ModulesException: No valid instance id for this instance.
at com.google.appengine.api.labs.modules.ModulesServiceImpl.getCurrentInstanceId(ModulesServiceImpl.java:68)
at com.google.appengine.tools.development.DevAppServerModulesFilter.getCurrentModuleInstance(DevAppServerModulesFilter.java:210)
at com.google.appengine.tools.development.DevAppServerModulesFilter.isLoadBalancingRequest(DevAppServerModulesFilter.java:186)
at com.google.appengine.tools.development.DevAppServerModulesFilter.getRequestType(DevAppServerModulesFilter.java:175)
at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:113)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:485)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
package com.dan;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import com.google.appengine.api.datastore.Key;
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;
private String name;
public Key getKey() {
return key;
}
public void setKey(Key key) {
this.key = key;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.dan;
import com.dan.EMF;
import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.config.ApiMethod;
import com.google.api.server.spi.config.ApiNamespace;
import com.google.api.server.spi.response.CollectionResponse;
import com.google.appengine.api.datastore.Cursor;
import com.google.appengine.datanucleus.query.JPACursorHelper;
import java.util.List;
import javax.annotation.Nullable;
import javax.inject.Named;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityNotFoundException;
import javax.persistence.EntityManager;
import javax.persistence.Query;
@Api(name = "bookendpoint", namespace = @ApiNamespace(ownerDomain = "dan.com", ownerName = "dan.com", packagePath = ""))
public class BookEndpoint {
/**
* 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" })
@ApiMethod(name = "listBook")
public CollectionResponse<Book> listBook(
@Nullable @Named("cursor") String cursorString,
@Nullable @Named("limit") Integer limit) {
EntityManager mgr = null;
Cursor cursor = null;
List<Book> execute = null;
try {
mgr = getEntityManager();
Query query = mgr.createQuery("select from Book as Book");
if (cursorString != null && cursorString != "") {
cursor = Cursor.fromWebSafeString(cursorString);
query.setHint(JPACursorHelper.CURSOR_HINT, cursor);
}
if (limit != null) {
query.setFirstResult(0);
query.setMaxResults(limit);
}
execute = (List<Book>) query.getResultList();
cursor = JPACursorHelper.getCursor(execute);
if (cursor != null)
cursorString = cursor.toWebSafeString();
// Tight loop for fetching all entities from datastore and accomodate
// for lazy fetch.
for (Book obj : execute);
} finally {
mgr.close();
}
return CollectionResponse.<Book> 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.
*/
@ApiMethod(name = "getBook")
public Book getBook(@Named("id") Long id) {
EntityManager mgr = getEntityManager();
Book book = null;
try {
book = mgr.find(Book.class, id);
} finally {
mgr.close();
}
return book;
}
/**
* 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 book the entity to be inserted.
* @return The inserted entity.
*/
@ApiMethod(name = "insertBook")
public Book insertBook(Book book) {
EntityManager mgr = getEntityManager();
try {
if (containsBook(book)) {
throw new EntityExistsException("Object already exists");
}
mgr.persist(book);
} finally {
mgr.close();
}
return book;
}
/**
* 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 book the entity to be updated.
* @return The updated entity.
*/
@ApiMethod(name = "updateBook")
public Book updateBook(Book book) {
EntityManager mgr = getEntityManager();
try {
if (!containsBook(book)) {
throw new EntityNotFoundException("Object does not exist");
}
mgr.persist(book);
} finally {
mgr.close();
}
return book;
}
/**
* 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.
*/
@ApiMethod(name = "removeBook")
public void removeBook(@Named("id") Long id) {
EntityManager mgr = getEntityManager();
try {
Book book = mgr.find(Book.class, id);
mgr.remove(book);
} finally {
mgr.close();
}
}
private boolean containsBook(Book book) {
EntityManager mgr = getEntityManager();
boolean contains = true;
try {
Book item = mgr.find(Book.class, book.getKey());
if (item == null) {
contains = false;
}
} finally {
mgr.close();
}
return contains;
}
private static EntityManager getEntityManager() {
return EMF.get().createEntityManager();
}
}
{
"extends" : "thirdParty.api",
"abstract" : false,
"root" : "https://appname.appspot.com/_ah/api",
"name" : "bookendpoint",
"version" : "v1",
"defaultVersion" : false,
"adapter" : {
"bns" : "https://appname.appspot.com/_ah/spi",
"deadline" : 10.0,
"type" : "lily"
},
"auth" : {
"allowCookieAuth" : false
},
"frontendLimits" : {
"unregisteredUserQps" : -1,
"unregisteredQps" : -1,
"unregisteredDaily" : -1,
"rules" : [ ]
},
"cacheControl" : {
"type" : "no-cache",
"maxAge" : 0
},
"ownerDomain" : "dan.com",
"ownerName" : "dan.com",
"methods" : {
"bookendpoint.removeBook" : {
"path" : "book/{id}",
"httpMethod" : "DELETE",
"authLevel" : "NONE",
"scopes" : [ "https://www.googleapis.com/auth/userinfo.email" ],
"audiences" : [ ],
"clientIds" : [ "292824132082.apps.googleusercontent.com" ],
"rosyMethod" : "com.dan.BookEndpoint.removeBook",
"request" : {
"parameters" : {
"id" : {
"type" : "int64",
"required" : true
}
},
"body" : "empty"
},
"response" : {
"body" : "empty"
}
},
"bookendpoint.insertBook" : {
"path" : "book",
"httpMethod" : "POST",
"authLevel" : "NONE",
"scopes" : [ "https://www.googleapis.com/auth/userinfo.email" ],
"audiences" : [ ],
"clientIds" : [ "292824132082.apps.googleusercontent.com" ],
"rosyMethod" : "com.dan.BookEndpoint.insertBook",
"request" : {
"body" : "autoTemplate(backendRequest)",
"bodyName" : "resource"
},
"response" : {
"body" : "autoTemplate(backendResponse)"
}
},
"bookendpoint.getBook" : {
"path" : "book/{id}",
"httpMethod" : "GET",
"authLevel" : "NONE",
"scopes" : [ "https://www.googleapis.com/auth/userinfo.email" ],
"audiences" : [ ],
"clientIds" : [ "292824132082.apps.googleusercontent.com" ],
"rosyMethod" : "com.dan.BookEndpoint.getBook",
"request" : {
"parameters" : {
"id" : {
"type" : "int64",
"required" : true
}
},
"body" : "empty"
},
"response" : {
"body" : "autoTemplate(backendResponse)"
}
},
"bookendpoint.updateBook" : {
"path" : "book",
"httpMethod" : "PUT",
"authLevel" : "NONE",
"scopes" : [ "https://www.googleapis.com/auth/userinfo.email" ],
"audiences" : [ ],
"clientIds" : [ "292824132082.apps.googleusercontent.com" ],
"rosyMethod" : "com.dan.BookEndpoint.updateBook",
"request" : {
"body" : "autoTemplate(backendRequest)",
"bodyName" : "resource"
},
"response" : {
"body" : "autoTemplate(backendResponse)"
}
},
"bookendpoint.listBook" : {
"path" : "book",
"httpMethod" : "GET",
"authLevel" : "NONE",
"scopes" : [ "https://www.googleapis.com/auth/userinfo.email" ],
"audiences" : [ ],
"clientIds" : [ "292824132082.apps.googleusercontent.com" ],
"rosyMethod" : "com.dan.BookEndpoint.listBook",
"request" : {
"parameters" : {
"cursor" : {
"type" : "string",
"required" : false
},
"limit" : {
"type" : "int32",
"required" : false
}
},
"body" : "empty"
},
"response" : {
"body" : "autoTemplate(backendResponse)"
}
}
},
"descriptor" : {
"schemas" : {
"Book" : {
"id" : "Book",
"type" : "object",
"properties" : {
"key" : {
"$ref" : "Key"
},
"name" : {
"type" : "string"
}
}
},
"Key" : {
"id" : "Key",
"type" : "object",
"properties" : {
"kind" : {
"type" : "string"
},
"appId" : {
"type" : "string"
},
"id" : {
"type" : "string",
"format" : "int64"
},
"name" : {
"type" : "string"
},
"parent" : {
"$ref" : "Key"
},
"complete" : {
"type" : "boolean"
},
"namespace" : {
"type" : "string"
}
}
},
"CollectionResponse_Book" : {
"id" : "CollectionResponse_Book",
"type" : "object",
"properties" : {
"items" : {
"type" : "array",
"items" : {
"$ref" : "Book"
}
},
"nextPageToken" : {
"type" : "string"
}
}
}
},
"methods" : {
"com.dan.BookEndpoint.removeBook" : {
},
"com.dan.BookEndpoint.insertBook" : {
"request" : {
"$ref" : "Book"
},
"response" : {
"$ref" : "Book"
}
},
"com.dan.BookEndpoint.getBook" : {
"response" : {
"$ref" : "Book"
}
},
"com.dan.BookEndpoint.updateBook" : {
"request" : {
"$ref" : "Book"
},
"response" : {
"$ref" : "Book"
}
},
"com.dan.BookEndpoint.listBook" : {
"response" : {
"$ref" : "CollectionResponse_Book"
}
}
}
}
}
最佳答案
ModulesException 是开发服务器上的一个已知问题:
https://code.google.com/p/googleappengine/issues/detail?id=10412
它不会与端点问题相关。
关于java - Google App Engine : com. google.appengine.api.labs.modules.ModulesException:此实例没有有效的实例 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254617/
我有 4 个文件。 C:\perlCode2\start.pl6 C:\perlCode2\file0.pm6 C:\perlCode2\folder1\file1.pm6 C:\perlCode2\
我有一个结构如下的模块: /module __init__.py /submod_1 __init__.py submod_1_class.py
我的源代码在 java 7 上编译并在 java 11 上运行。 我正在尝试将 imperva RASP 作为 java 代理集成到 tomcat 中。但是,当我启动 tomcat 服务器时,它抛出以
justExport.js const first = () => { console.log('frist from justExport') } const second = () => {
以下模块用JS文件编写: module.exports = { propA: 1, propB: 2 } 允许稍后从模块导入属性,如:从“路径/到/模块”导入 { propA} 然而,将文件格
我一直在尝试在嵌套的惰性加载模块中实现ngx翻译,但一直未能如愿。我面临的唯一问题是,每当我通过选择器更改语言时,嵌套延迟加载模块中的语言都不会更改。 HttpLoader 工作正常,其他一切工作正常
我没有可重复的示例,因为问题更多是关于模块如何工作。我试图了解如何将一些 react 功能从一个模块传递到下一个模块。过去我收到过有关使用 ObserveEvent 的回复,但是当我在一个模块中使用响
我正在阅读Wikipedia's definition of Dependency inversion principle ,它使用了两个术语高级模块和低级模块,我无法弄清楚。 它们是什么以及依赖倒置
问题 我遇到的一个问题是将两个模块的类型和值带入一个新的组合模块中。我举个例子。目前我有以下两种类型签名 module type Ordered = sig type t (* the type
我是 JavaScript 的新手,最近一直在努力处理导入问题。有一件事我无法理解。 在较旧的节点模块(主要是那些在 ES6 之前出现的模块)中,可以使用 npm 安装,例如 express,通常没有
我正在尝试使用 System.JS 将 material-ui 导入我的 React 应用 在我的应用中,我这样做: import {AppBar, Tabs, Tab, Card, CardTitl
我想使用功能module->exports查找模块提供的所有导出。不幸的是,传递给该函数的模块必须在当前命名空间中声明,然后才能在其上使用该函数。当我静态地知道模块是什么时,这没问题,我只需要将其引入
目录结构如下 outdir |--lib |--- __init__.py |--- abc.py |--indir
这与提到的非常相似 here但是评论或回答中提供的每个解决方案都没有解决我的问题。想看看是否还有其他我应该看的东西。我尝试了不同的路径,比如 ./app/mycomponent/mycomponent
我有两个 Angular 模块:main 和 feature: 主/根模块: @NgModule({ imports: [ StoreModule.forRoot({route
我尝试在 Ubuntu 04.12 LTS x64 中安装“Userful MultiSeat-X64-5.0.1 ...”,在安装结束时遇到以下错误: File "", line 6, in Im
我正在尝试优化我的 vendor bundle.js,因为它已经膨胀并且我正在使用 material-ui 库。 import Card from 'material-ui'; // Very bad
错误: Import-Module : The specified module 'msonline' was not loaded because no valid module file was
我在 Server 2008 SP2(64 位)上执行导入模块 ActiveDirectory 时遇到问题。 NET Framework 3.5 SP1 已安装 我下载了 Windows6.0-KB9
嗯,你好! 我正在编写一个脚本来获取 Sql 作业历史记录,并且需要使用“SqlServer”模块。它已安装,但由于上面的错误消息,我无法导入它。当我到达模块路径时,文件夹“SqlServer”存在并
我是一名优秀的程序员,十分优秀!