[appengine-java] java.lang.IllegalArgumentException: id or name, but not both, must be set in each key path element
I get this exception in my application. Anybody knows what is it about ? java.lang.IllegalArgumentException: id or name, but not both, must be set in each key path element at com.google.appengine.api.datastore.DatastoreApiHelper.translateError (DatastoreApiHelper.java:29) at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall (DatastoreApiHelper.java:56) at com.google.appengine.api.datastore.DatastoreServiceImpl$2.run (DatastoreServiceImpl.java:170) at com.google.appengine.api.datastore.TransactionRunner.runInTransaction (TransactionRunner.java:30) at com.google.appengine.api.datastore.DatastoreServiceImpl.put (DatastoreServiceImpl.java:158) at com.google.appengine.api.datastore.DatastoreServiceImpl.put (DatastoreServiceImpl.java:138) at com.google.appengine.api.datastore.DatastoreServiceImpl.put (DatastoreServiceImpl.java:134) at com.mably.webwinewatch.model.DatastoreEntity.save (DatastoreEntity.java:84) [...] Thanx for your help. François Bordeaux, FRANCE --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] PDF Generator Library
Does anybody know of a java PDF generator library working with Google App Engine ? Even a low-level one. Any help would be greatly appreciated. Thanx in advance. Francois Bordeaux, FRANCE --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Need GAE logs explanation
Hello everybody, I dont really understand the logs GAE shows me in the admin console : I have a first URI showing a simple search form that gives me : 09-24 08:24AM 30.341 /default/ftsearch.do?_contenttype_=content 200 117ms 103cpu_ms 73api_cpu_ms But my servlet service method lasts only : INFO : com.mably.cms.web.DispatcherServlet service: 6ms And I have a second URI listing data from the datastore that gives me : 09-24 08:24AM 28.575 /default/notifications.do 200 38ms 27cpu_ms 13api_cpu_ms INFO : com.mably.cms.web.DispatcherServlet service: 10ms What's annoying me is that the fastest (6ms versus 10ms) servlet seems to last longer for GAE (117ms vs 38ms) and to take more CPU. Can somebody explain these numbers to me ? Thanx in advance. Francois Bordeaux, FRANCE --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Datastore index deletion
I tried to use appcfg command line with action update_indexes but it doesn't delete my unnecessary indexes. It seems there is no vacuum action like in the python version, am I right ? So, does anybody have another solution to delete a datastore index with the java SDK ? Francois Bordeaux, FRANCE --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Re: Need GAE logs explanation
Thanx for your answer, the response times seems to be back to normal. I'll keep an eye on it. May be the two pages where served from different machines ? On 25 sep, 16:48, Toby Reyelts to...@google.com wrote: Is your application being initialized when you hit that URL? (One way to tell is by registering a load-on-startup servlet and logging from its init method). If so, what's likely happening is that you're not including your app initialization when you only time the service method of your servlet. On Thu, Sep 24, 2009 at 11:41 AM, mably fm2...@mably.com wrote: Hello everybody, I dont really understand the logs GAE shows me in the admin console : I have a first URI showing a simple search form that gives me : 09-24 08:24AM 30.341 /default/ftsearch.do?_contenttype_=content 200 117ms 103cpu_ms 73api_cpu_ms But my servlet service method lasts only : INFO : com.mably.cms.web.DispatcherServlet service: 6ms And I have a second URI listing data from the datastore that gives me : 09-24 08:24AM 28.575 /default/notifications.do 200 38ms 27cpu_ms 13api_cpu_ms INFO : com.mably.cms.web.DispatcherServlet service: 10ms What's annoying me is that the fastest (6ms versus 10ms) servlet seems to last longer for GAE (117ms vs 38ms) and to take more CPU. Can somebody explain these numbers to me ? Thanx in advance. Francois Bordeaux, FRANCE --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Re: Can't send mail with attachment using JavaMail API
Hi Ikai, have you been able to reproduce my Converting attachment data failed exception ? I'm still stuck on this strange bug. Thanx for your help. On 11 nov, 00:00, mably fm2...@mably.com wrote: Of course, here is below my email relay servlet class. What I'm willing to do is to hide my customers email addresses by relaying email to them via my google app email adress. I would like to be able to relay html emails with images which is quite common nowadays. I am sending my test emails from a gmail account. Thanx for your help. /* * Copyright (C) 2009 Francois Masurel * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package com.mably.cms.web; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeMessage.RecipientType; import javax.mail.util.ByteArrayDataSource; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.google.inject.Singleton; import com.mably.cms.model.ContentManager; import com.mably.cms.utils.TraitementStream; /** * @author f.masurel * */ @Singleton public class ContactMailServlet extends HttpServlet { /** serialVersionUID. */ private static final long serialVersionUID = 7131942698661805870L; /** Logger. */ private static final Logger LOG = LoggerFactory.getLogger(ContactMailServlet.class); @Inject private ContentManager contentManager; /** * {...@inheritdoc} */ public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); try { MimeMessage msg = new MimeMessage(session, req.getInputStream ()); String contentType = msg.getContentType(); LOG.info(Mail content type : + contentType); LOG.info(Mail sent to + Arrays.toString( msg.getRecipients(RecipientType.TO))); LOG.info(Mail received from + msg.getSender()); MimeMessage resmsg = new MimeMessage(session); resmsg.setSubject(msg.getSubject()); resmsg.setRecipient(Message.RecipientType.TO, msg.getSender()); Multipart rescontent = new MimeMultipart(); Object content = msg.getContent(); if (content instanceof String) { LOG.info(Content : string); } else if (content instanceof Multipart) { LOG.info(Content : multipart); Multipart mpcontent = (Multipart) msg.getContent(); for (int i = 0; i mpcontent.getCount(); i++) { BodyPart part = mpcontent.getBodyPart(i); MimeBodyPart respart = new MimeBodyPart(); respart.setContent( part.getContent(), part.getContentType()); rescontent.addBodyPart(respart); } } else if (content instanceof InputStream) { LOG.info(Content : inputstream); InputStream inputStream = (InputStream) content; ByteArrayDataSource ds = new
[appengine-java] Re: Can't send mail with attachment using JavaMail API
(SENDER, Relay account)); message.setRecipient(Message.RecipientType.TO, new InternetAddress(RECIPIENT, Recipient)); Transport.send(message); } catch (MessagingException e) { throw new ServletException(e); } } } On Sat, Nov 14, 2009 at 1:11 AM, mably fm2...@mably.com wrote: Hi Ikai, have you been able to reproduce my Converting attachment data failed exception ? I'm still stuck on this strange bug. Thanx for your help. On 11 nov, 00:00, mably fm2...@mably.com wrote: Of course, here is below my email relay servlet class. What I'm willing to do is to hide my customers email addresses by relaying email to them via my google app email adress. I would like to be able to relay html emails with images which is quite common nowadays. I am sending my test emails from a gmail account. Thanx for your help. /* * Copyright (C) 2009 Francois Masurel * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package com.mably.cms.web; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeMessage.RecipientType; import javax.mail.util.ByteArrayDataSource; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.google.inject.Singleton; import com.mably.cms.model.ContentManager; import com.mably.cms.utils.TraitementStream; /** * @author f.masurel * */ @Singleton public class ContactMailServlet extends HttpServlet { /** serialVersionUID. */ private static final long serialVersionUID = 7131942698661805870L; /** Logger. */ private static final Logger LOG = LoggerFactory.getLogger(ContactMailServlet.class); @Inject private ContentManager contentManager; /** * {...@inheritdoc} */ public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); try { MimeMessage msg = new MimeMessage(session, req.getInputStream ()); String contentType = msg.getContentType(); LOG.info(Mail content type : + contentType); LOG.info(Mail sent to + Arrays.toString( msg.getRecipients(RecipientType.TO))); LOG.info(Mail received from + msg.getSender()); MimeMessage resmsg = new MimeMessage(session); resmsg.setSubject(msg.getSubject()); resmsg.setRecipient(Message.RecipientType.TO, msg.getSender()); Multipart rescontent = new MimeMultipart(); Object content = msg.getContent(); if (content instanceof String) { LOG.info(Content : string); } else if (content instanceof Multipart) { LOG.info(Content : multipart); Multipart mpcontent = (Multipart) msg.getContent(); for (int i = 0; i mpcontent.getCount(); i++) { BodyPart part = mpcontent.getBodyPart(i); MimeBodyPart respart = new MimeBodyPart(); respart.setContent( part.getContent
[appengine-java] Re: Can't send mail with attachment using JavaMail API
I'm just sending a simple mail from my Gmail account with an embedded gif image. I can perfectly read it from my mail servlet handler but when I try to relay it (cf. code from first message) I get this annoying Converting attachment data failed error which seems to be specific to GAE. Here is the mail sent data : MIME-Version: 1.0 Sender: x...@gmail.com Received: by 10.142.204.15 with HTTP; Wed, 18 Nov 2009 13:57:20 -0800 (PST) Date: Wed, 18 Nov 2009 22:57:20 +0100 Delivered-To: x...@gmail.com X-Google-Sender-Auth: c9f34852bdb4f249 Message-ID: 75c1488c0911181357w4e8efdc2r7e82d8e1c3e03...@mail.gmail.com Subject: Test From: Francois MASUREL x...@mably.com To: contact-test contact-t...@webwinewatch.appspotmail.com Content-Type: multipart/related; boundary=001636e90e61aa516e0478ac5398 --001636e90e61aa516e0478ac5398 Content-Type: multipart/alternative; boundary=001636e90e61aa516b0478ac5397 --001636e90e61aa516b0478ac5397 Content-Type: text/plain; charset=UTF-8 [image: ? ui=2view=attth=125094c9bff3199battid=0.1disp=attdrealattid=ii_125094c9bff3199bzw] --001636e90e61aa516b0478ac5397 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable img title=3D? ui=3D2amp;view=3Dattamp;th=3D125094c9bff3199bamp;attid=3D= 0.1amp;disp=3Dattdamp;realattid=3Dii_125094c9bff3199bamp;zw alt=3D?ui= =3D2amp;view=3Dattamp;th=3D125094c9bff3199bamp;attid=3D0.1amp;disp=3Dat= tdamp;realattid=3Dii_125094c9bff3199bamp;zw src=3Dcid:ii_125094c9bff319= 9bbr br --001636e90e61aa516b0478ac5397-- --001636e90e61aa516e0478ac5398 Content-Type: image/gif; name=enveloppe.gif Content-Transfer-Encoding: base64 Content-ID: ii_125094c9bff3199b X-Attachment-Id: ii_125094c9bff3199b R0lGODlhEAAQAPeYAP39/tHR5MrK4fLy99PT6NfX6Nvb6/ f3+ff3+uDg7sPD3fHx9ra206qqyrKy 0eLi8Onp8bCwz +jo8cvL4WVlm7y81cLC2fPz96ysyrCwzcXF3c7O487O4tDQ5Le30+fn8cvL4ufn 8PDw9/Ly+fDw9PLy+N7e66Skx8/ P46mpymBglNLS5KKixoWFsYaGs56ewNXV5pqawKyszuTk7pyc wdra6Pr6/ Ht7qnt7qXl5qry82LGx0MbG3pCQsrOz0qyszZubucjI3eLi7eDg6eDg7X5+rJSUu9zc 54uLtvz8/b+/2KenyPX1+K6uzpmZwOvr9a6uz8XF3Ovr9tLS5uPj8Hx8qvv7/ ZiYwLm50NPT5tjY 6K+v0M7O5IGBqtzc68/ P3mpqnoeHsLCwynJypNjY60ZGgJ2dw1hYjc7O4bi40nh4qWlpnNjY5fn5 +5SUvcTE2oCAqbOz0Le31tzc7L292vj4+sPD2by81unp8s/P5s3N3fPz +VxckqOjyHZ2psLC23p6 pt3d7d7e7PDw+L292JOTu/z8/Kury7Ozyra20ubm8MTE1/b2/Pn5/ Hd3qJCQvOnp876+2tHR5tHR 4oaGrbW10pmZv/7+/v/// wAA ACH5BAEAAJgALAAQABAA AAjlADEJHCiwzSQjamYQXIjAAo0fAq5gWChwgB03PiBdkhDkxgKCITywiLLn0qUkU2A4ESPQRKIm K5iYNIlHCREefg5gMjNBBICZAKx4SUGlQA4smOJw +BAAjaJLABh1aBCITJ8uNmrIuDRAS4Uldwyk OZQFhQIKXxCcEGLSkCBLOKowoKNDARJKmN5AMQmghIBIEfKAICTnURlMFwotuNQogYYHcwJsYDDm DCKBGXZcGiQpgIECf1zwAUJiIIQWI6RwSUAghooeQyi +cPCEwBYwcI5QFMimSCVHgPTsHlgnzJpF OncHBAA7 --001636e90e61aa516e0478ac5398-- On Nov 18, 10:34 pm, Ikai L (Google) ika...@google.com wrote: François, I'm not familiar with any standards with regard to inline images. Do you have this working outside of App Engine? Do you have working code from that? If there are discrepancies in our implementation of javax.mail.* and standard implementations we should be aware. On Mon, Nov 16, 2009 at 10:30 PM, mably fm2...@mably.com wrote: In fact standards attachments works. But it's not what I'm trying do do. I'm need to relay HTML messages with inline images and this is still not working. Is it a kind of limitation of GAE or is it supposed to work ? Thanx for your help. François On 16 nov, 23:09, mably fm2...@mably.com wrote: Hi Ikai, thanx for you help. I've copy pasted your code on my webapp (webwinewatch), I've no error but the mail isn't correctly relayed, all attachements are removed. I've just modified the sender, from and recipient lines : message.setSender(new InternetAddress(myaddress@gmail.com, Relay account)); message.setFrom(message.getSender()); message.setRecipient(Message.RecipientType.TO, message.getSender()); Do you have any clue ? You can test it, sending an email to : contact- t...@webwinewatch.appspotmail.com Thanx again for your help. On 16 nov, 21:35, Ikai L (Google) ika...@google.com wrote: I couldn't reproduce your exact error, but I was able to put together a working example of an inbound email handler to relay messages. I'm going to expand the documentation about processing inbound emails. Here's some working code:http://pastie.org/701517 Does this example help any? Code is also pasted below, but it'll be easier for you to look at the Pastie. import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest
[appengine-java] Re: Can't send mail with attachment using JavaMail API
Of course, the code above doesn't need to be run in mail handler servlet :-) On Nov 19, 12:01 am, mably fm2...@mably.com wrote: I've written a simple class sending an HTML email with an embedded image (cf. below) via GMail SMTP. It works perfectly fine when run locally from Eclipse. The same code in a GAE mail servlet handler produce the infamous Converting attachment data failed error. So it really seems to be a problem in GAE javamail implementation. /* * Copyright (C) 2009 Francois Masurel * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; /** * @author Francois * */ public class GMailSMTP { private static final String SMTP_HOST_NAME = smtp.gmail.com; private static final int SMTP_HOST_PORT = 465; private static final String SMTP_AUTH_USER = x...@gmail.com; private static final String SMTP_AUTH_PWD = yyy; public static void main(String[] args) throws Exception{ new GMailSMTP().test(); } public void test() throws Exception{ Properties props = new Properties(); props.put(mail.transport.protocol, smtps); props.put(mail.smtps.host, SMTP_HOST_NAME); props.put(mail.smtps.auth, true); // props.put(mail.smtps.quitwait, false); String from = SMTP_AUTH_USER; String to = SMTP_AUTH_USER; String subject = Testing SMTP-SSL; String htmlText = h1Hello/h1img src=\cid:image\; byte[] imgData = this.obtainByteData(enveloppe.gif); Session mailSession = Session.getDefaultInstance(props); mailSession.setDebug(true); Message msg = new MimeMessage(mailSession); msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress (to)); msg.setSubject(subject); Multipart mp = new MimeMultipart(related); MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(htmlText, text/html); mp.addBodyPart(htmlPart); MimeBodyPart attachment = new MimeBodyPart(); attachment.setFileName(test.gif); attachment.setContent(imgData, image/gif); attachment.setHeader(Content-ID,image); mp.addBodyPart(attachment); msg.setContent(mp); Transport transport = mailSession.getTransport(); transport.connect (SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_AUTH_USER, SMTP_AUTH_PWD); transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO)); transport.close(); } /** * Constructs a byte array and fills it with data that is read from the * specified resource. * @param filename the path to the resource * @return the specified resource as a byte array * @throws java.io.IOException if the resource cannot be read, or the * bytes cannot be written, or the streams cannot be closed */ private byte[] obtainByteData(String filename) throws IOException { InputStream inputStream = getClass().getResourceAsStream (filename); ByteArrayOutputStream outputStream = new ByteArrayOutputStream (1024); byte[] bytes = new byte[512]; // Read bytes from the input stream in bytes.length-sized chunks and write // them into the output stream int readBytes; while ((readBytes = inputStream.read(bytes)) 0) { outputStream.write(bytes, 0, readBytes); } // Convert the contents of the output stream into a byte array byte[] byteData = outputStream.toByteArray(); // Close the streams inputStream.close(); outputStream.close(); return byteData; } } On Nov 18, 11:11 pm, Ikai L (Google) ika...@google.com wrote: What I mean is, is this code working on a different mail server? On Wed, Nov 18, 2009 at 2:00 PM, mably fm2...@mably.com wrote: I'm just sending a simple
[appengine-java] Re: Can't send mail with attachment using JavaMail API
I haven't found a way to set a Content-ID header on a mimebodypart/ attachment using the low-level API. The MailService.Attachment class is quite rudimentary (only filename and data). May be some part of the low level API are still undocumented ? Thanx for all. On Nov 19, 12:25 am, Ikai L (Google) ika...@google.com wrote: That's good information to know. We are not using Sun's JavaMail implementation, so it's possible there are points of incompatibility. There's one last thing you may want to try: http://code.google.com/appengine/docs/java/javadoc/com/google/appengi... The above page documents the Low-Level API. Try creating an email object via that API, setting the Content-ID of the attachment and the HTML tag to point to the cid. You're already doing that in the example you sent using javax.mail, but I'm wondering if the low-level API is capable of doing this. If not, I'll open an issue. On Wed, Nov 18, 2009 at 3:06 PM, mably fm2...@mably.com wrote: Of course, the code above doesn't need to be run in mail handler servlet :-) On Nov 19, 12:01 am, mably fm2...@mably.com wrote: I've written a simple class sending an HTML email with an embedded image (cf. below) via GMail SMTP. It works perfectly fine when run locally from Eclipse. The same code in a GAE mail servlet handler produce the infamous Converting attachment data failed error. So it really seems to be a problem in GAE javamail implementation. /* * Copyright (C) 2009 Francois Masurel * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; /** * @author Francois * */ public class GMailSMTP { private static final String SMTP_HOST_NAME = smtp.gmail.com; private static final int SMTP_HOST_PORT = 465; private static final String SMTP_AUTH_USER = x...@gmail.com; private static final String SMTP_AUTH_PWD = yyy; public static void main(String[] args) throws Exception{ new GMailSMTP().test(); } public void test() throws Exception{ Properties props = new Properties(); props.put(mail.transport.protocol, smtps); props.put(mail.smtps.host, SMTP_HOST_NAME); props.put(mail.smtps.auth, true); // props.put(mail.smtps.quitwait, false); String from = SMTP_AUTH_USER; String to = SMTP_AUTH_USER; String subject = Testing SMTP-SSL; String htmlText = h1Hello/h1img src=\cid:image\; byte[] imgData = this.obtainByteData(enveloppe.gif); Session mailSession = Session.getDefaultInstance(props); mailSession.setDebug(true); Message msg = new MimeMessage(mailSession); msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress (to)); msg.setSubject(subject); Multipart mp = new MimeMultipart(related); MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(htmlText, text/html); mp.addBodyPart(htmlPart); MimeBodyPart attachment = new MimeBodyPart(); attachment.setFileName(test.gif); attachment.setContent(imgData, image/gif); attachment.setHeader(Content-ID,image); mp.addBodyPart(attachment); msg.setContent(mp); Transport transport = mailSession.getTransport(); transport.connect (SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_AUTH_USER, SMTP_AUTH_PWD); transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO)); transport.close(); } /** * Constructs a byte array and fills it with data that is read from the * specified resource. * @param filename the path to the resource * @return the specified resource as a byte array * @throws
[appengine-java] Re: Can't send mail with attachment using JavaMail API
Any chance to see this bug fixed in the future ? Is there any documentation on the meaning of Converting attachment data failed error message ? On 19 nov, 20:55, Ikai L (Google) ika...@google.com wrote: Looks like you're right. As far as I know there are no hidden methods. Another workaround for this limitation could be to store incoming images in the data store on an incoming email, then reference them in the emails that get sent out. It's not ideal, but it may be the solution to what you are looking for. On Wed, Nov 18, 2009 at 3:36 PM, mably fm2...@mably.com wrote: I haven't found a way to set a Content-ID header on a mimebodypart/ attachment using the low-level API. The MailService.Attachment class is quite rudimentary (only filename and data). May be some part of the low level API are still undocumented ? Thanx for all. On Nov 19, 12:25 am, Ikai L (Google) ika...@google.com wrote: That's good information to know. We are not using Sun's JavaMail implementation, so it's possible there are points of incompatibility. There's one last thing you may want to try: http://code.google.com/appengine/docs/java/javadoc/com/google/appengi... The above page documents the Low-Level API. Try creating an email object via that API, setting the Content-ID of the attachment and the HTML tag to point to the cid. You're already doing that in the example you sent using javax.mail, but I'm wondering if the low-level API is capable of doing this. If not, I'll open an issue. On Wed, Nov 18, 2009 at 3:06 PM, mably fm2...@mably.com wrote: Of course, the code above doesn't need to be run in mail handler servlet :-) On Nov 19, 12:01 am, mably fm2...@mably.com wrote: I've written a simple class sending an HTML email with an embedded image (cf. below) via GMail SMTP. It works perfectly fine when run locally from Eclipse. The same code in a GAE mail servlet handler produce the infamous Converting attachment data failed error. So it really seems to be a problem in GAE javamail implementation. /* * Copyright (C) 2009 Francois Masurel * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; /** * @author Francois * */ public class GMailSMTP { private static final String SMTP_HOST_NAME = smtp.gmail.com; private static final int SMTP_HOST_PORT = 465; private static final String SMTP_AUTH_USER = x...@gmail.com; private static final String SMTP_AUTH_PWD = yyy; public static void main(String[] args) throws Exception{ new GMailSMTP().test(); } public void test() throws Exception{ Properties props = new Properties(); props.put(mail.transport.protocol, smtps); props.put(mail.smtps.host, SMTP_HOST_NAME); props.put(mail.smtps.auth, true); // props.put(mail.smtps.quitwait, false); String from = SMTP_AUTH_USER; String to = SMTP_AUTH_USER; String subject = Testing SMTP-SSL; String htmlText = h1Hello/h1img src=\cid:image\; byte[] imgData = this.obtainByteData(enveloppe.gif); Session mailSession = Session.getDefaultInstance(props); mailSession.setDebug(true); Message msg = new MimeMessage(mailSession); msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress (to)); msg.setSubject(subject); Multipart mp = new MimeMultipart(related); MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(htmlText, text/html); mp.addBodyPart(htmlPart); MimeBodyPart attachment = new MimeBodyPart
[appengine-java] Re: Help With Images In Java
Found this doc on Google, it might help you : http://balusc.blogspot.com/2007/04/imageservlet.html#ImageServletServingFromDatabase On 20 nov, 05:09, java-dev sehgal@gmail.com wrote: hi all, I need some help with images in appengine using java. Now I have sucessfully uploaded an image file and stored it to the datastore. I am also able to read back the stored image (as a byte[] array). Now the issue is, how do I display this image in my jsp page? *** //gets the image file Object from the read data d ImageFile f = d.getImg(); //gets the byte array of this image byte[] imb = f.getImg(); //futile attempt to display this image for(int i=0; iimb.length; i++) out.println(imb[i]); *** The above code displays the raw bytes on the jsp pageHow can I get this to display the image itself? Any help would be greatly appreciated.. Thanks. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=.
[appengine-java] Re: HttpSession and setMaxInactiveInterval
The session cookie is lost when you close your browser. So no way to get back to the original session once you reconnect. Nothing in common with an eventual authentication cookie. On 26 nov, 22:32, Peter Hulsen hul...@gmail.com wrote: Hi, I am writing a custom authentication process and like the app to leave the user signed in after the browser closes (i.e., when the user revisits the app she is directly signed in). I thought the following piece of code would accomplish this: HttpSession session = req.getSession(true); session.setMaxInactiveInterval(60*60*24*14); // 2 weeks session.setAttribute(Username, username); But when I restart the browser and visit the app a user has to sign in again. What is missing to keep user signed in after browser restarts? Thanks. Regards, Peter -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Multipart mail regression in 1.2.8 ?
If you encounter the same problem, please vote for issue http://code.google.com/p/googleappengine/issues/detail?id=965 On 8 déc, 12:16, mably fm2...@mably.com wrote: Hi Ikai, Effectively the code you provided seems to work but not exactly as I hoped. Before 1.2.8, I was able to send an html email with inline images using the previous code. Now the image is sent as an external attachment. It's really sad we can't send nice html messages with images anymore. Do you know if it will work again anytime soon ? Thanx again for your help. François On 8 déc, 02:54, Ikai L (Google) ika...@google.com wrote: François, Can you give this a try? ByteArrayDataSource mimePartDataSource = new ByteArrayDataSource(imgData, inboundMimeBodyPart.getContentType()); attachment.setDataHandler(new DataHandler(mimePartDataSource)); On Sat, Dec 5, 2009 at 1:47 AM, mably fm2...@mably.com wrote: This code doesn't work anymore for me : public void test() throws Exception{ String from = x...@gmail.com; String to = x...@gmail.com; String subject = Testing multipart email; String htmlText = h1Hello/h1img src=\cid:image\; byte[] imgData = this.obtainByteData( /com/mably/cms/themes/standard/resources/images/ enveloppe.gif); Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress (to)); msg.setSubject(subject); Multipart mp = new MimeMultipart(related); MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(htmlText, text/html); mp.addBodyPart(htmlPart); MimeBodyPart attachment = new MimeBodyPart(); attachment.setFileName(test.gif); attachment.setContent(imgData, image/gif); attachment.setHeader(Content-ID,image); mp.addBodyPart(attachment); msg.setContent(mp); Transport.send(msg); } What needs to be changed ? Any help will be greatly appreciated. François -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Generating QR Codes with ZXing
Has anyone successfully used Google ZXing library on GAE for generating QR Codes ? Thanx for your help. François -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Generating QR Codes with ZXing
More generally, has anybody heard of an open source barcode generator java library running on GAE ? We need to generate QR Codes or Datamatrix bar codes from our application running on GAE. We are using the Google Charts API for generating QR Codes for the moment. Thanx for you help. On 19 déc, 18:50, mably fm2...@mably.com wrote: Has anyone successfully used Google ZXing library on GAE for generating QR Codes ? Thanx for your help. François -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Generating QR Codes with ZXing
Hi Roberto, thanx for your answer. I finally succeeded generating QRCodes with the ZXing QRCode encoder and a home made PNGEncoder (derivated from the ones found there : http://catcode.com/pngencoder/). But I'm still stuck with Datamatrix bar codes coz ZXing doesn't generate them. Any help will be greatly appreciated. François On 20 déc, 18:27, Roberto Saccon rsac...@gmail.com wrote: There is a sample app with ZXing, which runs on GAE, but I don't know exactly what it does, but I think to encode QRCodes (generating an image) isn't that difficult, I recently did that (just for a test) in Javascript, with an Open source code I found after 2 seconds of Googeling. If you want to decode Images, then I think the ZXing code has some AWT dependencies, which aren't GAE whitelisted. -- Roberto On Dec 20, 12:16 pm, mably fm2...@mably.com wrote: More generally, has anybody heard of an open source barcode generator java library running on GAE ? We need to generate QR Codes or Datamatrix bar codes from our application running on GAE. We are using the Google Charts API for generating QR Codes for the moment. Thanx for you help. On 19 déc, 18:50, mably fm2...@mably.com wrote: Has anyone successfully used Google ZXing library on GAE for generating QR Codes ? Thanx for your help. François -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Generating QR Codes with ZXing
Here is my ZXing ByteMatrix to PNG encoder, derived from the PNGEncoder from KeyPoint Software distributed under the LGPL license. It generates GrayScale only PNG bar codes. /* * Copyright (C) 2009 Francois Masurel * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/ . */ package com.mably.cms.utils.zxing; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.CRC32; import java.util.zip.Deflater; import java.util.zip.DeflaterOutputStream; import com.google.zxing.common.ByteMatrix; /** * PngEncoder takes a Java Image object and creates a byte string which can be * saved as a PNG file. The Image is presumed to use the DirectColorModel. * * p * Thanks to Jay Denny at KeyPoint Software http://www.keypoint.com/ who let me * develop this code on company time. * /p * * p * You may contact me with (probably very-much-needed) improvements, comments, * and bug fixes at: * /p * * p * codeda...@catcode.com/code * /p * * p * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * /p * * p * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * /p * * p * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA A copy of the GNU LGPL * may be found at codehttp://www.gnu.org/copyleft/lesser.html/ code * /p * * @author J. David Eisenberg * @version 1.5, 19 Oct 2003 * * CHANGES: 19-Nov-2002 : CODING STYLE CHANGES ONLY (by David * Gilbert for Object Refinery Limited); 19-Sep-2003 : Fix for * platforms using EBCDIC (contributed by Paulo Soares); 19- Oct-2003 : * Change private fields to protected fields so that PngEncoderB can * inherit them (JDE) Fixed bug with calculation of nRows */ public class ByteMatrixPngEncoder extends Object { /** IHDR tag. */ protected static final byte IHDR[] = { 73, 72, 68, 82 }; /** IDAT tag. */ protected static final byte IDAT[] = { 73, 68, 65, 84 }; /** IEND tag. */ protected static final byte IEND[] = { 73, 69, 78, 68 }; /** Constants for filter (NONE) */ protected static final int FILTER_NONE = 0; protected static final byte BLACK = (byte) 0x00; protected static final byte WHITE = (byte) 0xFF; /** The png bytes. */ protected byte[] pngBytes; /** The prior row. */ protected byte[] priorRow; /** The left bytes. */ protected byte[] leftBytes; /** The width. */ protected int width, height; /** The byte position. */ protected int bytePos, maxPos; /** CRC. */ protected CRC32 crc = new CRC32(); /** The CRC value. */ protected long crcValue; /** The bytes-per-pixel. */ protected int bytesPerPixel; /** The compression level. */ protected int compressionLevel; private ByteMatrix matrix; /** * Class constructor specifying Image source to encode, whether to encode * alpha, filter to use, and compression level. * * @param image *A Java Image object * @param encodeAlpha *Encode the alpha channel? false=no; true=yes * @param whichFilter *0=none, 1=sub, 2=up * @param compLevel *0..9 * @see java.awt.Image */ public ByteMatrixPngEncoder(ByteMatrix matrix, int compLevel) { this.matrix = matrix; this.width = matrix.getWidth(); this.height = matrix.getHeight(); this.bytesPerPixel = 1; if (compLevel = 0 compLevel = 9) { this.compressionLevel = compLevel; } } /** * Creates an array of bytes that is the PNG
[appengine-java] Re: Can't send mail with attachment using JavaMail API
Don't forget to star issue : http://code.google.com/p/googleappengine/issues/detail?id=965 On Dec 31, 3:23 pm, minor-undroid mnrn...@gmail.com wrote: Hi there, I reproduced same problem. I cannot send attachment file and inline image with HTML mail. (Of course, I could send plain text mail without attachment and HTML mail without inline image) I don't have any idea. It would be very helpful to tell me anything. I build the mime message in HtmlMimeMessage#createMimeMessage method. My code is as follows, / *** **/ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import javax.activation.DataHandler; import javax.mail.MessagingException; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.util.ByteArrayDataSource; import com.mnrngsk.test20091217.mail.CommonData; import com.mnrngsk.test20091217.mail.DbgLog; public class HtmlMimeMessage { private static final String CID_DOMAIN = @xxx; private static final String REGEX_IMGTAG = img(\[^\]*\|'[^']*'| [^'\])*src=(\[^\]*\|'[^']*'|[^'\])*/?; private MimeMessage mmHtmlMsg = null; private MimeMultipart mmpHtmlMail = null; private String strHtmlSrc = ; private boolean bAttach = false; private String strAttach = ; private ArrayListReplacedImgTag replacedImgTagList = new ArrayListReplacedImgTag(); // constructor public HtmlMimeMessage(MimeMessage msg, boolean bAttach) { this.mmHtmlMsg = msg; this.bAttach = bAttach; } public void setSource(String strSrc) { this.strHtmlSrc = strSrc; } public void setAttachment(String strAttach) { if (this.bAttach) { this.strAttach = strAttach; } } private void addInlineImageTo(MimeMultipart mmp) { int iImgSrcCount = this.replacedImgTagList.size(); for (int i = 0; i iImgSrcCount; i++) { DbgLog.info(HtmlMimeMessage#addInlineImageTo; Inline Image # + Integer.toString(i)); ImageMessageBodyFactory imageMbpFactory = new ImageMessageBodyFactory(this.replacedImgTagList.get(i)); MimeBodyPart mbpImg = imageMbpFactory.createMessageBody(); try { mmp.addBodyPart(mbpImg); DbgLog.info(HtmlMimeMessage#addInlineImageTo;\n mbpImg#ContentType= + mbpImg.getContentType() + \n this.mmpHtmlMail#ContentType= + mmp.getContentType()); } catch (MessagingException e) { e.printStackTrace(); DbgLog.warning(HtmlMimeMessage#addInlineImageTo; MessagingException; + e.getMessage()); } } } public boolean createMimeMessage() { boolean bRes = false; try { TextByHtmlMessageBodyFactory textMbpFactory = new TextByHtmlMessageBodyFactory(this.strHtmlSrc); MimeBodyPart mbpText = textMbpFactory.createMessageBody(); HtmlMessageBodyFactory htmlMbpFactory = new HtmlMessageBodyFactory (this.strHtmlSrc, replacedImgTagList); MimeBodyPart mbpHtml = htmlMbpFactory.createMessageBody(); MimeMultipart mmpMixed = null; MimeBodyPart mbpAttach = null; if (this.bAttach) { DbgLog.info(HtmlMimeMessage#createMimeMessage; w Attachment (mixed);); AttachedMessageBodyFactory attachMbpFactory = new AttachedMessageBodyFactory(); attachMbpFactory.setAttachment(this.strAttach); mbpAttach = attachMbpFactory.createMessageBody(); mmpMixed = attachMbpFactory.getMultipart(); } MimeMultipart mmpAlter = new MimeMultipart(alternative); if (mbpText != null) { mmpAlter.addBodyPart(mbpText);
[appengine-java] Re: After how much time of no traffic does GAE shut-down the instance
You might be interested in this issue : http://code.google.com/p/googleappengine/issues/detail?id=2456 On 10 jan, 14:34, Jorge athenas...@gmail.com wrote: It's been some discussion about this topic. You may want to seek posts with words keep warm or cold start, for instance. See also the Tragedy of the Commons, and Cold Starts post in the Google Aps Forum http://groups.google.com/group/google-appengine/browse_thread/thread/... Jorge Gonzalez On Jan 9, 3:16 pm, Locke locke2...@gmail.com wrote: In my testing, apps which are hit every 2 minutes need to boot every time (costing beacoup CPU cycles), whereas apps hit every 1 minute stay loaded. This limit seems to have changed over time. When I started using appengine several months ago, it would wait ten minutes before subjecting you to the unload/reload penalty. I would gladly send google a stick of RAM in the mail if they would just keep my app going! ;-) On Jan 9, 8:16 am, Yossi yossi@gmail.com wrote: Hi, I've noticed that the same request that takes in average 2 seconds could take more then 20 seconds after around 10 minutes that the application is idle (no requests are received). I assume that after ~10 minutes of no requests, the GAE shuts-down the instance. Is there an official information about this period of time? Is there a way to extend this period of time (besides writing a cron job that runs every minute)? Thanks. Yossi -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: App Engine cold starts and overly aggressive cycling
Seems to be the case for me too, I've been noticing instance restarts pretty often these last 2 or 3 days. On 8 fév, 19:02, Ikai L (Google) ika...@google.com wrote: Thanks for the info, Jake. Has anyone else experienced this? That is, has anyone else noticed improvement which has since degraded? On Mon, Feb 8, 2010 at 9:10 AM, Jake jbrooko...@cast.org wrote: Hey all, Since Ikai's post on January 22nd, I haven't had much trouble with my instance rebooting unexpectedly. However, today the problem has returned. I'm getting instance restarts within a minute or two of each other on a somewhat regular basis - sometimes even within a few seconds of each other, caused by my first request. Jake On Jan 30, 3:06 pm, Edwin Hautus ehau...@gmail.com wrote: I am having this problem for the last week or two after months of good performance and very little recycling. As my app start up time is around 15 seconds this is really hitting my user experience in a negative way. On Jan 16, 12:32 am, Ikai Lan i...@google.com wrote: Hey everybody, We've been seeing more and more reports of applications being cycled out overly aggressively, resulting in some folks implementing (discouraged) workarounds to keep their application from being cycled out. - What is your application ID? salsa-amsterdam - How do you know it is being cycled out? You'll need to insert some code that only gets called when the app cold starts. I have some logging which is executed on startup - How much time of inactivity does it take before your application is cycled out? Can be as little as a minute. - What time or days does this seem to happen? Seems to happen all the time. - What frameworks or libraries are you loading? Just the plain Servlet API and Groovy. Any other information you can provide would be helpful. Start up time of the app is about 10 seconds and involves some on the fly compilation of Groovy scripts. Ikai Lan Developer Programs Engineer, Google App Engine -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Local datastore is empty after migrating to 1.3.1
Same thing happened to me. Got an empty local datastore after updating to 1.3.1. Hopefully I didn't have much data in it. But it might not be the case for everybody. On 12 fév, 09:35, Al Murauski a.murau...@gmail.com wrote: The Development Console tells The datastore is empty after updating to 1.3.1. Any ideas why? I need my local data back. The local_db file is not emoty and contain sthe data it contained before 1.3.1 migration. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Datastore migration
If you need an integrated backup solution in GAE, please star issue : http://code.google.com/p/googleappengine/issues/detail?id=776 On 2 fév, 19:22, Moritz mor...@cloudme.org wrote: Hello everyone, after a couple of versions of my application I found out that I need to change the datamodel fundamentally in order to achieve better performance. My approach was as follows: (Coding) - Mark all old API as @Deprecated - Create new classes etc. - Update views etc. - Develop a migration servlet which copies data from the old model to the new model (Migration) - Deploy new app - Call migration servlet URL All tests on my local development environment were successful. The new datamodel is less complex than the old one, it contains only implicit relations and stores large data in a separate entity. That perfectly matches the application's scope, only minor refactorings were necessary to implement the new datamodel. However, the migration failed. Of course, I had already so much data in the system, that the request timed out. Now my datastore is half old and half new. Bummer. Luckily, that application is not really in production, so it is not a fatal loss. However, I'm wondering how such migration is usually done. - How do Ibackupmy datastore? - How do I run migration scripts (in my case =servlet)? Thank you, Moritz -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Help needed : found more than 100 URLMap entries in application configuration
I'm hitting the Found more than 100 URLMap entries in application configuration limit. What is strange is that I have only 82 url-pattern definitions in my web.xml (many servlets). Is it possible to have it increased by someone at Google? My app ID is webwinewatch. Any help will be greatly appreciated as I can't deploy my app anymore. Thanx in advance. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.