Tag: 谷歌应用程序内引擎

保留的实例和预热请求不起作用

我从来没有能够让它工作得非常正确而且令人不安:我已经配置了热身请求,但我从未看到它们通过,因此大约10%的请求导致新实例被启动并请求花费30秒或者更差。 而且由于持续的减速,有时这些旋转需要比平常更长的时间和超时,这是非常可怕的。 这是一个春季应用程序,启动速度非常慢,我可能可以优化到不到30秒,但除此之外……我需要预热请求才能工作,因此实例不会满足用户请求,直到它们为止实际准备好了 有人说热身请求不起作用,除非你有常驻实例,这是有意义的,所以我注册了336小时/周的折扣实例小时,但一小时后我仍然没有看到任何保留的实例创建。 即使我杀死所有动态的,也会创建新的动态。 所以我的具体问题是:我是否需要做任何其他事情来设置保留实例? 一旦这些提起,那还会打开预热请求吗? 我的应用设置: 空闲实例:自动自动 待定延迟:5s-10s 配置服务:预热请求 AppEngine上-web.xml中: true true web.xml中: _ah_warmup com.google.apphosting.utils.servlet.WarmupServlet _ah_warmup /_ah/warmup 我的主要Spring调度程序servlet和appstats servlet也有: 1

如何删除Google App Engine(Java)中的索引?

有没有办法删除Google App Engine Java应用程序中未使用的索引? 我能找到的唯一方法是创建一个空的Python GAE应用程序并运行以下命令: appcfg.py vacuum_indexes /path/to/myapp/ 有更智能的方式吗? 更新(2011年2月16日): 从GAE SDK 1.4.2开始,它是可能的: ./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war

一种将appengine数据存储实体转换为我的对象的方法?

使用google appengine 1.3.0 w / java和jdo … 在尝试为一对多拥有的关系编写JDO查询时,我遇到了一个我认为非常聪明的非JDO概念。 祖先Querys。 appengine.api.datastore.Query接口允许使用父键确定查询范围。 不幸的是,查询的结果是带有属性列表的“实体”对象。 apis中是否有一个util会将其中一个Entity对象转换为我的JDO对象,甚至是一个简单的DTO bean(与我的JDO对象匹配)? 我用下面的代码强行破解了它,但不喜欢双重查找。 PersistenceManager pm; DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); List results; com.google.appengine.api.datastore.Query query = new Query( “MyObject”, KeyFactory.stringToKey( parentId ) ); query.addFilter(“rank”, Query.FilterOperator.GREATER_THAN_OR_EQUAL, minRank ); query.addSort(“rank”); query.setKeysOnly(); for (Entity anEntity : datastore.prepare(query).asIterable()) { results.add( pm.getObjectById( MyObject.class, anEntity.getKey() ) ); }

当状态代码为4xx时,GAE / J将Content-Type从JSON更改为HTML

我用Java编写了一个Web API(泽西岛的JAX-RS),它使用JSON返回“403 Forbidden”。 HTTP/1.1 403 Forbidden Content-Type: application/json; charset=UTF-8 … {“resultCode”:”…”} 它按预期在本地GAE开发服务器上运行。 但是, 在真正的GAE上,内容类型从JSON更改为HTML 。 HTTP/1.1. 403 Forbidden Content-Type: text/html; charset=utf-8 … 403 Forbidden Error: Forbidden 如何防止GAE更改内容类型和实体主体? 附加信息 我的端点不会抛出任何exception。 它返回一个Response实例。 下面的代码片段是测试端点。 在本地GAE dev服务器上,此端点返回JSON。 在真正的GAE上,它返回HTML。 太好了。 import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; @Path(“/test”) public class TestEndpoint { @GET public Response get() { […]

如何在GAEJ中建模实体关系?

我想知道 – 一个例子非常感谢 – 如何在Google App Engine for Java中建立关系模型? – 一对多 – 许多人 我在网上搜索过,我没有发现任何关于Java的所有指南和教程都是关于Python的。 我从这篇文章中了解到,在Python中,关系是使用ReferenceProperty建模的。 但是,我在Javadoc引用中没有发现这个类。 此外,在本文中他们讨论了以下内容: 目前Java用户的工具短缺,主要是由于App Engine的Java平台相对较新。 然而,那是在2009年写的。 最后,我最终使用每个实体的祖先路径建模关系。 我发现这种方法存在问题并限制了应用程序的可伸缩性。 你能指导我到Python的ReferenceProperty类的等效Java类吗? 或者,您能否举例说明如何使用Java数据存储区低级API在AppEngine中建模关系。 在此先感谢您的帮助。

Google数据存储区 – 查询关键值

我有一个EntityKind SuggestedInterest。 当我使用键“GrpId”和属性“suggestedint”填充它时。 现在,我需要“suggestint”值来请求“GrpId” 所以,我把查询写成: String findSuggestedInterest(String grpId) { DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); Filter filter = new FilterPredicate(Entity.KEY_RESERVED_PROPERTY,FilterOperator.EQUAL,grpId); Query q0 = new Query(“SuggestedInterest”).setFilter(filter); PreparedQuery pq0 = datastore.prepare(q0); Entity result = pq0.asSingleEntity(); return result.getProperty(“suggestedint”).toString(); } 当我执行此代码时,我得到了 java.lang.IllegalArgumentException: __key__ filter value must be a Key 开发人员讲述了使用Entity.KEY_RESERVED_PROPERTY来查询密钥,但我想我误会了。 查询密钥的正确方法是什么?

Google App Engine – Java还是Python?

我注意到这是在下面的post中提到的 。 有没有人用过这两个,能否最终告诉我哪个更好? 看起来python可能更容易实现并且更快?

如何使用MySql处理日语的搜索查询?

我使用MySQL Server for Web App JSP,并且在MySQL中遇到LIKE查询问题。 当我使用日语的片假名类型的LIKE查询时,某些时候结果无法正确显示。 例: SELECT r.report_id, r.user_id, u.user_name FROM report r JOIN user u ON u.user_id = r.user_id WHERE r.report_comment LIKE CONCAT(‘%’, ‘AC’, ‘%’) ) 在此查询中,当我用英语键入“ AC ”字符时,尝试使用Java执行此查询。 结果是正确的(返回1行)。 但是当我用片假名输入“ AC ”字符时,尝试用Java执行此查询。 没有找到任何行。 如何正确处理搜索查询与所有情况?

谷歌应用引擎和mongodb

我在谷歌应用引擎上使用Java和MongoDB,但我找不到任何关于如何用Java连接到MongoDB的参考。 我试过以下内容: Maven的: org.mongodb mongo-java-driver 2.6.3 Java的: String serverName = “”; //provided external and internal ip addresses as well as name of mongoDB instance, Mongo mongo = new Mongo(serverName); //com.addsapp.dao.MongoDB.initDB1(MongoDB.java:39) 得到以下结果: Uncaught exception from servlet java.lang.ExceptionInInitializerError at com.mongodb.Bytes.(Bytes.java:215) at com.mongodb.MongoOptions.reset(MongoOptions.java:32) at com.mongodb.MongoOptions.(MongoOptions.java:28) at com.mongodb.Mongo.(Mongo.java:175) at com.mongodb.Mongo.(Mongo.java:140) at com.addsapp.dao.MongoDB.initDB1(MongoDB.java:39) … 有没有人有一个很好的Java参考如何做到这一点? 在netz上找不到任何东西。 谢谢。

从Android访问云存储

我一直无法找到有关如何从Android应用程序使用云存储的任何具体文档。 我确实遇到了来自Google Cloud SDK的这个客户端库 ,但是遇到了很多很多问题并且还没有让它运行起来。 我在上面的链接中添加了以下代码: build.gradle : compile group: ‘com.google.cloud’, name: ‘google-cloud-storage’, version: ‘0.9.3-beta’ 然后我添加了一些简单的代码,虽然这与这个问题并不相关,因为我已经能够运行我的应用程序并添加了上面的依赖项: 在活动中: Storage storage = StorageOptions.getDefaultInstance().getService(); Page buckets = storage.list(); Iterator bucketIterator = buckets.iterateAll(); while (bucketIterator.hasNext()) { Bucket bucket = bucketIterator.next(); Log.d(TAG, “Bucket name: ” + bucket.getName()); } 解决了无数的依赖问题(与Joda冲突,Netty, DuplicateFileException来自gradle等)我能够构建项目,尽管有以下错误: Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for debug as it may […]