Tag: google app engine

客体化关系:一对多,我能否有效地做到这一点?

我对Objectify很新,我有一个快速的问题,想要做最好的事情: 假设我有一个允许人们发送和接收消息的应用程序(为简单起见,请考虑发送电子邮件)。 当我的应用加载时,我不想从每个发送消息给给定用户的联系人加载每条消息。 那将是一种浪费。 相反,我想加载用户有消息的所有联系人(读取或未读取),以便我可以在我的应用程序上显示联系人列表,当用户点击给定联系人时我想加载所有来自该联系人的消息显示给用户。 如果不加载帐户的所有消息,我找不到这样做的好方法。 我在多对一关系中阅读了Objectify wiki,我仍然想不出一个不是非常低效的好方法。 这似乎是客观化网站推荐的方式,我必须为给定用户加载所有消息,然后解析它们以获得唯一的联系人。 我正在尝试使用尽可能少的App Engine读取和写入,并尽可能地尝试使用Smalls而不是Reads(运行我的应用程序的总体成本是我的一个大问题,而我正在制作这个) 。 在Objectify,我该怎么做?

关于GAE的REST,使用什么实现?(RESTlet,jersey,other ……)

有人在GAE上使用REST有经验吗? 也许你可以为此建议一些轻量级的REST实现。 我发现RESTlet说他们有GAE优化的实现。 RESTlet-GAE有人试试这个吗?

非常大的实体组的交易

我正在尝试设计一个可以容纳大量数据的数据模型,有大量数据经验的人对此有任何反馈,即: // example only, not meant to compile public class TransactionAccount { private long balance; private List transactions = new ArrayList(); …. public long getBalance() { return balance; } } private class Transaction { public Date date; public long amount; } 根据我所读到的内容,在插入Transaction和更新balance获得事务完整性的唯一方法是使其成为一个实体组。 但是,随着时间的推移,特定TransactionAccount将有数百万笔TransactionAccount 。 对此实体组的写入次数较少,但读取次数会更高。 我知道它可能是分片的,但是读取balance是一个非常频繁的操作,并且分割它会使最常见的操作之一getBalance()成为最慢的操作。

您何时在Objectify中注册GAE课程?

所以这可能是一个愚蠢的问题,但你什么时候注册课程: ObjectifyService.register( User.class ); 目前,我在类似接口的类的构造函数中这样做,我在其他类中使用它来简化数据存储的使用,特别是我的应用程序。 但是,我收到此错误: 尝试两次注册“用户” 所以,我想我的问题是你在Objectify中注册课程的频率和具体时间是多少? 谢谢! PS这是我的全class: import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Iterator; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.persistence.Id; import com.googlecode.objectify.Objectify; import com.googlecode.objectify.ObjectifyService; import com.googlecode.objectify.annotation.Indexed; import com.googlecode.objectify.annotation.Unindexed; public class UsersService { Objectify ojy; public UsersService(){ ObjectifyService.register( User.class ); ojy = ObjectifyService.begin(); } public void regUser(String email, String password, String firstName, […]

在Eclipse(App Engine)项目中包含JAR文件

我一直在寻找这个问题的解决方案今天和昨天的几个小时,所以我决定在这里解决它,虽然这似乎是一个愚蠢的问题。 情况:我在Eclipse Java EE中设置了Google AppEngine项目。 它存在多周,一切运行正常,我可以部署到App Engine并在没有probs的情况下在Eclipse中进行测试。 现在我需要为fe JSON支持和Google Visualization API添加JAR包。 我在一周前尝试过JSON,因为它失败了,我只是下载了源文件并将它们添加到我自己的源代码中。 但是现在使用可视化的东西,它是太多的源文件,所以我需要JAR工作。 我做了什么: 下载了JAR文件。 将它们放在PROJECT / lib文件夹中。 选择它们并右键单击并单击“构建路径”>“添加到构建路径”。 发生了什么:一切顺利,我可以导入类并从中创建子类而没有错误。 所以很明显,Eclipse认识到了类的存在,而Eclipse已成功导入它们。 然后我尝试构建它(调试模式)并得到以下错误(我用JSON得到的那个): Nov 27, 2011 11:57:48 AM com.google.apphosting.utils.jetty.JettyLogger warn WARNING: failed chartDataServlet: java.lang.NoClassDefFoundError: com/google/visualization/datasource/DataSourceServlet Nov 27, 2011 11:57:48 AM com.google.apphosting.utils.jetty.JettyLogger warn WARNING: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@727db937{/,/Volumes/Data/eclipse_workspace/kulStats/war}: java.lang.NoClassDefFoundError: com/google/visualization/datasource/DataSourceServlet Nov 27, 2011 11:57:48 AM com.google.apphosting.utils.jetty.JettyLogger warn WARNING: failed […]

Eclipse使用JSTL需要哪些JAR文件才能最终适用于GAE / J?

我一直在尝试的时间超过了我想承认让JSTL在Eclipse下工作(最终在GAE / J下)。 我已经下载了Eclipse,Eclipse的Google App Engine扩展和JSTL( http://download.java.net/maven/1/jstl/jars/ – jstl-1.2.jar在WEB-INF \ lib目录中)。 我的代码和输出一起在下面: Test Page Test Page 我得到的错误是: The tag handler class for “c:set” (org.apache.taglibs.standard.tag.rt.core.SetTag) was not found on the Java Build Path test.jsp [my app’s path and name] line 8 JSP Problem 从本页的最后一篇文章中我不认为我需要一个standard.jar( http://forums.sun.com/thread.jspa?threadID=701267 ),无论如何我在Oracle上找不到一个download.java.com网站以及jstl jar。 编辑4:现在工作 – 步骤: 1)使用Apache版本 2)实际上在构建路径中包含jar文件(右键单击eclipse项目并点击Properties – > Java Build […]

Google App Engine渠道API

我正在尝试学习GAE的通道API(使用Java),但我无法弄清楚从哪里开始。 我浏览了Channel API Overview(Java),但为了简洁起见,那里发布的代码并不完整。 因为我是新手,如果有完整的示例代码,那将非常有用。 谢谢,Shrey

配置Eclipse以将App Engine类预先捆绑到单个JAR中,以便更快地进行预热

在与另一家同时使用App Engine的公司的同事讨论后,他告诉我,他设法使用以下步骤将应用程序预热时间从约15秒减少到约5秒: 配置Eclipse以将编译期间生成的类捆绑到单个JAR文件中。 在App Engine部署期间,将Eclipse配置为上载此单个JAR文件,而不是上载数百(或数千)个单独的Java类。 他认为,在实例热身期间,由于实例只需要加载一个捆绑的JAR文件而不是数千个单独的类,因此预热会明显加快。 对此有何想法或意见? 我肯定想亲自尝试一下,但我没有足够的Eclipse-mojo知道如何配置这些步骤。 有谁知道如何配置Eclipse或Eclipse的Google插件来执行上述步骤? (当然,已部署的应用程序在App Engine中成功运行) 谢谢,

用appengine开发服务器测试邮件(java)

我正在使用javamail从我的appengine应用程序发送邮件。 它在部署中完美运行,但我无法弄清楚如何使用开发服务器执行此操作。 每当我需要测试sendmail时,我都需要部署非常烦人的应用程序。 背景信息(为什么日志不起作用): 我们知道电子邮件会转到appengine开发服务器上的日志。 但是,想要从开发服务器发送电子邮件的主要原因是能够测试电子邮件的格式。 它看起来怎么样? 需要对电子邮件模板进行更改,以使其在电子邮件客户端A,B和C中看起来很好,并且可以快速完成,而无需每次都部署到真实的默认appengine版本的麻烦。 我们不是垃圾邮件发送者。 我们不是试图绕过任何类型的安全。 简而言之,我们希望合法地能够在一个或多个电子邮件客户端中查看真实的实际电子邮件,然后立即进行代码更改,以便我们可以调整它们,而无需经历编辑,编译,等待5分钟的艰苦过程它可以部署,测试,重复循环。 由于每个电子邮件客户端如何呈现电子邮件没有标准,因此通过尝试在许多客户端中使用某些内容来放大这一艰苦的过程。 题: Java Google App Engine开发服务器如何配置为从本地计算机或SMTP服务发送电子邮件,以便测试发送到真实,实际电子邮件客户端的电子邮件?

发送电子邮件时主题编码问题

我正在发送一封电子邮件,但我正确地收到了该邮件,但该主题的编码不正确。 我发送“invitación”但我收到“invitaci?n”。 消息内容正常。 当主题在String变量中设置时,消息的内容来自Velocity Template的转换。 我已经google了,我看到有人说MimeUtility.encodeText()可以解决问题,但我没有成功。 我该如何解决这个问题? 这是我到目前为止的代码。 String subject = “Invitación”; String msgBody = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, “/vmTemplates/template.vm”, “UTF-8”, model); Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); try { String encodingOptions = “text/html; charset=UTF-8”; Message msg = new MimeMessage(session); msg.setHeader(“Content-Type”, encodingOptions); msg.setFrom(new javax.mail.internet.InternetAddress(emailFrom)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(emailTo)); msg.setSubject(subject); msg.setContent(msgBody, encodingOptions); Transport.send(msg); } catch (AddressException […]