Tag: 谷歌应用程序内引擎

GAE项目类路径上的Xerces JAR导致“找不到SAXParserFactoryImpl”

我正在使用Google App Engine的Eclipse插件,我遇到了一个Xerces依赖的奇怪问题。 我的类取决于我添加到项目的类路径中的Apache Xerces JAR。 但是,这会在启动Jetty应用服务器时触发错误: WARNING: failed com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@6efde050 {/,/Users/lenni/dev/gate/war} javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found 当我从类路径中删除xercesImpl.jar时,jetty启动正常,但是我的类不再编译,因为缺少依赖项。 这听起来很像这个问题 ,但是我尝试转换到JRE 1.6并且仍然没有快乐。

JumpNote:未指定主类型

我正在Android / GoogleApp中迈出第一步,我正在尝试探索Jumpnote示例: http : //code.google.com/p/jumpnote/ 我能够将Android和Appengine项目导入eclipse,但在尝试运行Jumpnote-web部分时遇到了以下问题(android运行良好)。 运行Web部件时出现错误Main type is not specified哪个AFAIK暗示该项目缺少主要function。 跳转示例确实如此,我需要手动添加它,或者我错过了其他的东西?

InvocationTargetException使用appengine-gcs-client-0.5 dev_appserver存储文件

我正在使用appengine-gcs-client-0.5并在调用GcsService.createOrReplace和GcsOutputChannel.close时在dev_appserver中看到InvocationTargetExceptions。 似乎对storeBlob的调用没有适当的权限,因为appserver在com.google.appengine.api.blobstore.dev.FileBlobStorage.storeBlob中获取了AccessControlException: java.security.AccessControlException: access denied (“java.io.FilePermission” “/tmp/1440435923000-0/encoded_gs_key:” “write”) 为了让这个工作,我需要做什么?

为什么Google Cloud Endpoints不支持简单对象返回类型?

我的大多数方法返回字符串,整数,布尔值等等,我敢打赌99%的开发人员都有,确保我们有时会返回复杂的对象,数组等,但大多数时候会更简单一些。 为什么Cloud Endpoints不支持此function? 谢谢!

无法使用GCS客户端库+ java将文件从GAE项目上传到Google云存储

我正在尝试使用新的Gcs客户端库从我的GAE应用程序上传图像/文件到谷歌云存储。 这是代码片段 GcsService gcsService = GcsServiceFactory.createGcsService(new RetryParams.Builder() .initialRetryDelayMillis(10) .retryMaxAttempts(10) .totalRetryPeriodMillis(15000) .build()); GcsFilename filename = new GcsFilename(BUCKETNAME, FILENAME); GcsFileOptions options = new GcsFileOptions.Builder().mimeType(“text/html”).acl(“public-read”).build(); GcsOutputChannel writeChannel = gcsService.createOrReplace(filename,options); PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, “UTF8”)); out.println(“The woods are lovely dark and deep.”); out.println(“But I have promises to keep.”); out.flush(); writeChannel.waitForOutstandingWrites(); writeChannel.write(ByteBuffer.wrap(“And miles to go before I sleep.”.getBytes())); writeChannel.close(); […]

Google数据存储区 – 更新实体时出现问题

我正在消除我的谷歌应用程序引擎/数据存储技能……并且陷入非常简单的困境。 根据GAE文档中的示例,我尝试更新实体,如下所示: // persistence and business logic PersistenceManager pm = PMF.get().getPersistenceManager(); // get it NickName n = pm.getObjectById(NickName.class, nicknameId); // update fields n.givenName = “new name”; n.nickName = “new nickname”; n.timeStamp = new Date(); // close manager to persist changes pm.close(); 这不起作用(因为更改不会持久,但没有错误或其他任何东西)! 与此同时,我发现如果我创建一个具有相同ID的新实体,则更改将保持不变: // persistence and business logic PersistenceManager pm = PMF.get().getPersistenceManager(); NickName n = […]

通过appengine将文件上传到Google云端存储

我正在尝试将文件上传到Google云端存储。 我的Servlet代码是 public class UploadFile extends HttpServlet { private final String BUCKET = “XXXXXXXXX”; private boolean isMultipart; private String filePath; private int maxFileSize = 5 * 1024 * 1024; private int maxMemSize = 5 * 1024 * 1024; private File file ; public void init( ){ // Get the file location where it would be […]

AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory

当我尝试在AppEngine中使用低级DataStore API时,我得到了一个有趣的ClassNotFoundException 。 此exception发生在云服务器中,而不是在本地实例中。 在本地我使用appengine-java-sdk-1.7.4 。 java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/DatastoreServiceFactory at org.himadri.scradiolisteners.server.FetchingServlet.writeDataLowLevel(FetchingServlet.java:47) at org.himadri.scradiolisteners.server.FetchingServlet.doGet(FetchingServlet.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 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.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266) 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 com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at […]

使用App Engine数据存储区查找重叠范围

我正在使用Google App Engine for Java和JDO接口来为CrimeWatch组织的应用程序提供数据存储。 我试图实现的function之一是远程日志,当人们长时间离开时会报告(因此巡逻者知道要密切关注房屋)。 在应用程序中,我有一个AwayLogEntry对象,其中包含开始日期和结束日期,以及所需的其他字段。 我需要向在特定时间段(通常是即将到来的一周)内离开的邻居巡逻的人提供报告。 我正在尝试构建一个报告,给出两个日期,找到与此范围重叠的所有AwayLogEntries。 我真正想要使用的查询是 select * from AwayLogEntry where not(end :reportEndDate) 但是不允许使用NOT子句(找不到关于这个的文档,但是它引起了这种效果的exception),也没有使用带有不等式filter的两个字段,所以我不能直接查询不同的重叠情况。 我现在的解决方法并不是很好 – 当我的当前日期大于条目结束日期时,我将创建一个日常的cron作业,删除(或标记它们,如果我需要保留它们以进行审计)。 然后我可以查询开始日期小于报告结束日期的所有条目(如果我不删除它们,则不会标记)。 这将允许合理地报告下一个X天的条目(这是他们通常需要的),但不允许任意日期范围查询(我猜他们会要求),除非我只是拉入所有条目并在代码中过滤它们。 任何人都可以想到解决GAE JDO实施的这种限制的任何技巧吗?

如何在命名空间之间复制数据存储区实体

我想将一个名称空间中的所有数据(例如www.mysite.com)复制到另一个名称空间,比如nightly.latest.mysite.appspot.com。 最好的方法是什么? 示例命名空间不是随机的:它们是NamespaceFilter为服务应用程序的给定域设置的命名空间。 我希望能够将所有“生产”数据拉入“非生产”命名空间进行测试。