Tag: 谷歌应用程序引擎

如何在Google App Engine Java应用程序之间共享模块之间的会话?

当我通过模块A中的HttpSession在会话中存储某些内容时: HttpSession session = req.getSession(true); session.setAttribute(“username”, “Eng.Fouad”); 然后我尝试从模块B中检索此信息(在同一浏览器会话期间): HttpSession session = req.getSession(true); String username = session.getAttribute(“username”); // null! 我将null作为值,这意味着不同的会话。 如何在GAE中跨多个模块共享会话? 旧答案,我认为它不能很好地工作: 我一直试图解决这个问题好几个星期。 事实certificate,模块不共享会话,因为不同子域的cookie是不同的(module1.apphost.com cookies!= module2.apphost.com cookies)。 要解决此问题,只需在每个模块的web.xml中设置cookie域: org.mortbay.jetty.servlet.SessionDomain .apphost.com org.mortbay.jetty.servlet.SessionPath / org.mortbay.jetty.servlet.SessionURL none … 额外: 以下是可以与Jetty cookie一起使用的所有init参数的列表: 编辑:开发环境的解决方法: 使每个模块的端口固定(使用JVM arg -Dcom.google.appengine.devappserver_module.{module_name}.port=8081 )。 例如,module1始终托管在localhost:8888,而module2始终托管在localhost:8889。 看到这个答案 。 使用Fiddler将localhost与每个模块的端口绑定到自定义域。 例如,moule1.gaelocal.com指向localhost:8888,moule2.gaelocal.com指向localhost:8889。 看到这个答案 。 更新每个模块的web.xml并将.apphost.com替换为.gaelocal.com (或者只为两个环境使用.apphost.com )。

有没有正确的方法来操纵GoogleAppEngine安全权限?

我有一个连接到另一个localhost服务器所需的GoogleAppEngine应用程序,但是当我尝试从服务器代码执行此操作时,我得到: java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve) 我知道我可以使用java虚拟机参数指定我的额外安全授权(我在Web应用程序运行配置中指定它们): java -Djava.security.manager -Djava.security.policy=WEB-INF/java.policy 与java.policy内容: grant { permission java.net.SocketPermission “localhost:8081”, “connect, resolve”; }; 但它会覆盖位于com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager私有类中的GoogleAppEngine内部安全管理器,因此以这种方式禁用AppEngine本身所需的属性。 有没有办法让GoogleAppEngine内部安全管理器类使用我的策略文件而不是用jar中的存根(允许任何东西)手动替换它?

谷歌文档的缩略图链接不起作用

我做了一个java代码来获取谷歌文档文件图像的缩略图链接.getThumbnailLink()这段代码工作到最后一个星期四或星期五,现在不起作用…我得到的结果是url为“未找到错误404”消息:“ https://docs.google.com/a/se.pe/feeds/vt?gd=true&id=1dDEYCOQTlpSy5izlcNz0dAq12ooD3cB5Gdqc1Wd4VV4&v=1&s=AMedNnoAAAAAUq9UYexxDIprZfC2V8RnJd4gxWeVaXLw&sz=s220 ”。 我认为谷歌已经更改了此url的格式,例如在我看到的相同缩略图图片的drive.google.com界面中: https : //lh3.google.com/MO8uVrNxKRa3uvSmqtR5yUZ1ooSZtP5zDpLMtCdmeiA4CZB4MXNKeDN1ewEBdzJleHkKAEpShb-BcOor8lwQOKbtQk7x=w230-h212 请帮助我再次获取代码以获取谷歌文档的缩略图。

Eclipse在我的web.xml中报告问题,但处理得很好

我正在使用Google App Engine和Eclipse中的Google插件,这是我的web.xml的标题: 基于一些GAE文档,我添加了这个: /tasks/* admin 但是,Eclipse在“url-pattern”上报告错误: cvc-complex-type.2.4.a:从元素’url-pattern’开始发现无效内容。 预计会有一个'{“http://java.sun.com/xml/ns/javaee”:web-resource-name}’。 我可以启动应用程序,它似乎处理web.xml文件就好了,但我不喜欢Eclipse报告错误的事实。 问题是什么?

GAE上的Resteasy multipart / data-form文件上传

我正在尝试使用resteasy 2.0.1.GA将带有文件的表单上传到GAE应用程序中,使用建议如何使用jax-rs上传多部分/表单文件? 的index.html Rest.java @Path(“”) public class Rest { @POST @Path(“/rest/upload”) @Consumes(“multipart/form-data”) public String postContent(@MultipartForm UploadForm form) { System.out.println(form.getData().length); System.out.println(form.getName()); return “Done”; } } UploadForm.java public class UploadForm { private String name; private byte[] data; @FormParam(“name”) public void setPath(String name) { this.name = name; } public String getName() { return name; } @FormParam(“file”) public void […]

AppEngine gzip压缩

我正在尝试从GAE服务器gzip响应,但在Content-Encoding中收到null。 我有以下代码: connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod(“POST”); connection.setRequestProperty(“Content-Type”, “application/json; charset=utf-8″); //”application/json; charset=utf-8” connection.setRequestProperty(“Accept-Encoding”, “gzip”); connection.setRequestProperty(“User-Agent”, “gzip”); connection.setUseCaches (false); connection.setDoInput(true); connection.setDoOutput(true); //write //read System.out.println(“Content-Encoding ” + connection.getContentEncoding()); 我已经读过,GAE服务器会自动压缩。 那可能是什么问题呢?

Google App Engine ClassNotPersistenceCapableException

我有以下课程: import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; import com.google.appengine.api.datastore.*; @PersistenceCapable(identityType=IdentityType.APPLICATION) public class PayPal_Message { @PrimaryKey @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private Text content; @Persistent private String time; public PayPal_Message(Text content,String time) { this.content=content; this.time=time; } public Long getId() { return id; } public Text getContent() { return content; } public String […]

将图像上传到Google云端存储(Java)

我想开发一个java应用程序(用于PC),可以将任何图片上传到Google云端存储。 虽然我整个晚上都在寻找解决方案,但我没有任何线索如何开始。 有没有人有将图像上传到Google云端存储的经验? 谷歌云存储有更好的替代方案吗?

Google App Engine使用Blobkey

您好,我正在尝试制作一个servlet,允许管理员上传图像和任何谷歌用户查看这些图像,到目前为止,我正在解决https://developers.google.com/appengine/docs/java/blobstore上提供的程序/概述 当我上传一张图片时,它会使用很长的blobKey直接提供它吗? 并将其自身的副本存储在local_db.bin中 我无法找到的是,是否有任何方法可以缩短使用的blobkeys? 例如,我想有一个画廊,显示用户上传的所有图像,但到目前为止,我可以从数据库中获取图像的唯一方法是调用这样的东西 res.sendRedirect(“/ serve?blob-key =”+ blobKey.getKeyString()) 但这只适用于一个图像,我需要硬编码每个新的blobKey,以便在一个单独的页面上显示它,也意味着当用户上传新图像时,我将不得不编辑代码并为新的添加新链接图片? 基本上我想知道的是,无论如何都可以轻松定义存储在local_db.bin中的每个blob。 任何帮助将不胜感激,请不要犹豫,询问更多细节。 谢谢

如何在谷歌应用程序引擎中创建来自twilio helper liabrary的调用

我正在尝试使用Twilio Java帮助程序库从谷歌应用引擎创建一个外拨电话 例: private void createcall(HttpServletRequest req, HttpServletResponse resp) { String ACCOUNT_SID = “AC69000ff19655ca86c5a4ae027b886665”; String AUTH_TOKEN = “bef9594c1e7f542b6e331bd7e50077d0”; try { TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN); Map params = new HashMap(); params.put(“Url”, “http://demo.twilio.com/docs/voice.xml”); params.put(“To”, “+919460952623”); params.put(“From”, “+13072241210”); CallFactory factory = client.getAccount().getCallFactory(); Call call = factory.create(params); TwilioCapability capability = new TwilioCapability(ACCOUNT_SID,AUTH_TOKEN); capability.allowClientOutgoing(“APf5250942ec073c9d08848990cbc0ff5e”); resp.getWriter().write(capability.generateToken()); } catch (Exception […]