Tag: 谷歌应用程序引擎

如何在GAE端点中检索自定义用户对象?

我刚刚在谷歌应用引擎Java应用上创建了自己的自定义身份validation。 而且我正在尝试做的下一件事并不是那么麻烦。 身份validation工作正常,但现在我正在尝试向默认的User对象添加一些额外的字段,这样我就不必对服务器进行如此多的调用。 所以我到目前为止所创建的是一个实现Authenticator的自定义类。 根据用户是否经过身份validation,authenticate方法返回User对象或null。 然后,我的API端点可以访问用户对象。 为了扩展我的应用程序function,我尝试扩展默认的User对象,创建一些新字段,然后将其传递给端点。 但是,由于端点可访问的User对象与我扩展的用户对象不同,因此无法获取额外的字段。 MyAuthenticator.java import com.google.api.server.spi.auth.common.User; public class MyAuthenticator implements Authenticator { @Override public User authenticate(HttpServletRequest request) { // some code return new AuthUser(…) } AuthUser.java import com.google.api.server.spi.auth.common.User; public class AuthUser extends User { private String newToken; public AuthUser(String email) { super(email); } public AuthUser(String id, String email) { super(id, […]

Google AppEngine:自定义身份validation

我可以使用Google帐户在AppEngine中validation用户身份的方式非常棒。 但是,我需要使用我的自定义身份validation登录系统 。 我将有一个AppUsers表,带有用户名和加密密码。 我读了一些关于gae会话的内容,但我需要帮助才能启动我的应用安全性。 如何跟踪经过身份validation的用户会话? 设置cookie? 一个初学者。

检查谷歌应用引擎数据存储区中是否存在实体。

检查实体是否存在于Google-app-engine数据存储区中的最佳/最快方法是什么? 现在我试图通过键获取实体并检查get()是否返回错误。 我不知道在数据存储区上获取实体的过程。 有没有更快的方法只做这个检查?

MVC在Google App Engine Java世界中的应用

我是从C#和ASP.NET MVC来到Java,我很想找到一个可以在Google App Engine上使用的Java世界中的等价物。 我已经开始玩FreeMarker ,甚至迈出了编写一个非常简单的框架的第一步。 理想情况下,我不需要做所有艰苦的工作,有人必须已经做到了! 所以我的问题是 – 那些来自ASP.NET MVC的我会熟悉哪些框架,我可以在Google App Engine for Java上使用它们。 我想要的关键是: 简单路由 – /products/view/1映射到产品控制器的视图操作,产品为1 模板引擎 – 某种方式可以轻松地将“ViewData”传递给视图,并且从视图中轻松访问它,理想情况下我希望避免任何过于XMLy的事情(因此我喜欢FreeMarker )。

通过Google应用引擎发送会议邀请邮件

我想发送iCalendar会议邀请。 我正在使用Google App引擎Java。 我设法发送带有iCalendar文件作为附件的邮件,但Outlook等程序不会自动将其识别为会议邀请。 我想,我必须将附件的内容类型设置为:“text / calendar; method = REQUEST”,但在我看来,GAE不接受这个? 更新 :上面我错了。 我实际上发现,我必须直接在内容中发送带有iCalendar部分的邮件,而不是附件! 所以我的问题是,GAE似乎不接受设置消息本身的内容类型。 有没有人使用GAE通过邮件成功发送会议邀请iCalendar元素? 更新: 我明白了,我必须更加具体。 实际上,我想发送iMip消息。 iMip消息不是多部分,其内容类型是“文本/日历”。 在发送会议邀请的情况下,它将是“text / calendar; method = REQUEST”。 所以我试过这个: Message msg = new MimeMessage(session); msg.setContent(iCalendarAsString, “text/calendar;method=REQUEST”); 然后我用Transport.send(..)发送消息; 在GAE的开发服务器的日志中我看到,内容类型是“text / plain”。 这就是为什么我说,我认为,GAE不接受设置不同的内容类型。 还是我错了? 更新2 好的,这是完整的代码: Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); try { Message msg […]

在不使用java.awt.Color的情况下从HSV(Java中的HSB)转换为RGB(在Google App Engine上不允许)

我想我应该发布这个问题,即使我已经找到了解决方案,因为当我搜索它时,Java实现并不容易获得。 使用HSV代替RGB可以生成具有相同饱和度和亮度的颜色(我想要的东西)。 Google App Engine不允许使用java.awt.Color,因此执行以下操作以在HSV和RGB之间进行转换不是一个选项: Color c = Color.getHSBColor(hue, saturation, value); String rgb = Integer.toHexString(c.getRGB()); 编辑:我按照尼克约翰逊的评论中的描述移动了我的答案。 前animo, – 亚历山大。

使用Java的Google App Engine中的多对多关系

是否可以在Google App Engine中的对象之间建立多对多关系? 我是GAE的新手,还在读它。 编码似乎与我以前常用的Java编码完全不同。 我已经阅读了入门留言簿教程。 那么,我可以从GAE用户那里获得任何帮助/教程/video/知识吗? 谢谢。

Google AppEngine会话示例

我刚刚在我的Google AppEngine / Java + GWT应用程序中启用了Session 。 我该如何使用它? 如何从中获取会话ID和播放所有好东西? 是否有任何简单登录页面的真实示例,我只是输入LoginName和Password,然后通过RPC调用进入服务器,对数据库进行身份validation并将会话ID发送回客户端。 我已经有以下代码,但不知道下一步该做什么: GWT登录表格: public class LoginForm { private final LoginServiceAsync loginService = GWT.create(LoginService.class); VerticalPanel loginVp = new VerticalPanel(); TextBox loginTxt = new TextBox(); TextBox passTxt = new TextBox(); Button loginBtn = new Button(“Login”); public Widget getLoginWidget(){ loginBtn.addClickHandler(new ClickHandler(){ public void onClick(ClickEvent arg0) { loginService.authenticateUser(loginTxt.getText(), passTxt.getText(), new […]

App Engine Java Servlet无法连接到Cloud SQL

我使用app引擎创建了一个java web servlet,servlet向数据库发出请求。 我已经使用本地数据库在本地测试了servlet并且它运行良好,然后我继续在本地测试servlet但是仍然访问了Cloud SQL数据库,这也很有效。 我部署servlet后出现问题。 部署完所有数据库请求后返回以下内容: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 我在云控制台中检查了一下,我的应用程序已正确添加到访问控制选项卡下的云SQL授权应用程序引擎应用程序中。 是否有人在部署的应用引擎servlet上遇到过类似的问题? 那里有任何解决方案或建议吗? 我将不胜感激任何帮助! 更新: 使用以下代码生成上述错误以访问db Class.forName(“com.mysql.jdbc.Driver”); Url = “jdbc:mysql://:3306/”; Connection con = DriverManager.getConnection (Url,”root”,); 使用此代码实现了同样的错误,请注意它与此处示例中显示的代码非常相似https://developers.google.com/appengine/docs/java/cloud-sql/ Class.forName(“com.mysql.jdbc.GoogleDriver”); Url = “jdbc:google:mysql:///? user=root&password=”; Connection […]