Re: [appengine-java] Re: Spring application context initialization on every request
Hello, My application is Struts2 based I have tried setting up the cron job every minute. But, still it does not help. The response time was still 20sec for the first time. -Aswath On Mon, Jan 4, 2010 at 10:00 AM, zhiw...@gmail.com zhiw...@gmail.comwrote: have a look at this link: http://groups.google.com/group/google-appengine-java/browse_thread/thread/603cc766d1e1c3d4/88913abfcb6351e8 On Dec 31 2009, 6:17 pm, Naim mdnh...@gmail.com wrote: Hi, I have deployed a small application on appengine using Spring framework. But I have noticed, if my app does not get any request for a after period of time (10 mins perhaps), all the initialization done by Spring vanishes. To serve the next request, it initializes the Spring application context and all the servlet contexts. At the moment, I am preventing this by running a cron that makes a request to my app every minute. Is there any other way? Am I missing something? __ Naim mdnh...@gmail.com -- 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%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- 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] custom vs. generated keys / storage?
Hi, I'm generating my own entity keys, with new Entity(Foo, myId). I noticed that in the DataStore viewer, these entities still seem to have a default key: Decoded entity key: Foo: name=myId Entity key: ahFzY2FyYWJyZWNvbW1lbmRlcnJACxIVUHJvZHVjdFJlY29tbWVuZGF0aW9uIiU1OTg1MEMzMzMwOUZGRjV8MjAxMDAxMDQwMTAzNTN8cHJvZF8wDA So the Entity key here still seems to be generated by GAE. Why is this needed? I do have a primary key already. So does it get stored as simply another indexed column? Does this impact storage space too? I don't need the GAE entity key at all, and would prefer not having to pay for its storage either :) Thanks, Viktor -- 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: Querying by Category class
I have tried the simplest approach and it works: query.setFilter(tags == ' + aTagValue + ' ); On Jan 3, 5:05 pm, Itzik Yatom itzik...@hotmail.com wrote: I consider to use the built in Category class for implementing tags for one of my datastore classes. Something like: . import com.google.appengine.api.datastore.Category; . @Persistent protectedListCategory tags; . My question is how do I filter objects by a tag value, for example I want to get all objects that have a 'pollution' tag. Actually, there are here two questions: 1. How to query by fields that are lists (or collections)? 2. How to use Category class in queries ? 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=en.
[appengine-java] Re: Querying by Category class
I have tried the simplest approach and it works: query.setFilter(tags == ' + aTagValue + ' ); It may work, but is actually invalid JDOQL and you should always use valid JDOQL syntax like tags.contains(tagParam) and your current query would fail in future releases. -- 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: any plans for deferred.defer in Java?
John, I think my earlier serialization error problems in production were because I was unnwittingly using an old version of GAE (1.2.6). Vince was never able to reproduce the issue in production. I believe everything is working in dev and prod as of 1.2.8. Give it a whirl and post your feedback. /dmc http://turbomanage.wordpress.com On Jan 1, 1:42 am, John Howe jhowe...@gmail.com wrote: I greatly appreciate the work that has been done here. But let me ask my question another way. Is it known that this does not work? On Thu, Dec 31, 2009 at 5:19 PM, John Howe jhowe...@gmail.com wrote: I can't seem to find any additional postings on this topic and I'm not sure what the conclusion for being able to use the Deferred capability with the latest Java SDK release. I'm just wondering if Vince's solution works on both server and development environments. On Dec 16, 10:42 am, David Chandler turboman...@gmail.com wrote: Thanks, Vince. Regarding a way to access the Guice injector, I've figured out I can simply create and access the injector via a static factory, so no changes are needed to Deferred or Deferrable. This works for AppEngine since there is only one WAR per JVM. If there were more than web app, I'm not sure whether Guice ServletModules would work, but that's not an issue for now. /dmchttp://turbomanage.wordpress.com On Dec 2, 2:47 pm, Vince Bonfanti vbonfa...@gmail.com wrote: The behavior you're reporting is exactly the opposite of what I'm seeing. For me, deserialization always fails on the dev server and always works in production. What I'm seeing on the dev server is that the bytes retrieved from the task payload (req.getInputStream) are not the same bytes that are sent; the result is the StreamCorruptedException. Again, though, I only see this on the dev server and never in production. Can you send me an example that fails in production? I'd like to understand what's going on before applying the Base64 encoder workaround. I'm not at all familiar with Guice, but I think I understand what you're trying to do. One thought I've had is that we could pass the HttpServletRequest object to the doTask() method. This would allow you to add attributes (objects) to the HttpServletRequest within your Guice filter and then retrieve them within your doTask() method. Vince On Fri, Nov 27, 2009 at 7:53 PM, David Chandler turboman...@gmail.com wrote: I've solved the serialization problems by Base64 encoding the serialized task before calling payload() and decoding it in the deserialize(HttpServletRequest) method. I'm guessing something in the task queue chain (either task queue payload storage or the servlet call when task is run) has problems transmitting the binary data, as the exception I was getting at one point was a java.io.StreamCorruptedException. I'll send another patch to Vince. My solution works, but I'm not completely satisfied that I've diagnosed the problem correctly. I used Apache commons-codec for Base64. Is it safe to use com.sun.misc instead? I see it in appengine.repackaged chain, as well, but don't see it as part of an official Google API. Somewhat related, I've wired up the Deferred servlet through the GuiceFilter so I can pass a Guice injector to Deferrable tasks. Since the task objects are not created through Guice, but rather by deserializing, I modified doTask() to accept an additional Injector argument. We probably don't want that in the official version of Deferrable, though. Is there a better way for my Deferrable classes to get access to a Guice context? I'm trying to avoid Guice.createInjector(), as it results in a duplicate PersistenceManagerFactory being created since other servlets are also being served through Guice. Thank you, /dmc On Nov 27, 5:42 pm, David Chandler turboman...@gmail.com wrote: Jeff, I'm seeing problems with deserialization, too, when deployed on AppEngine. In dev, I can deserialize(serialize(task)) and it works just fine, but not so in AppEngine. I get the same error whether the task payload is the serialized Deferrable task itself or just the Key with the task in the db, but I haven't yet figured out which is the cause of the problem. The error I'm getting on AppEngine is invalid type code: 00 in Deferred.deserialize method. I've tried Base64 encoding after serialization in case it's related to special binary escape sequences that happen to be in the serialized object stream but still no success. I'm pretty sure AppEngine has written some custom code to do serialization because I previously got an AppEngine acess control exception when calling enableResolveObject(true) in a subclass of ObjectInputStream,
Re: [appengine-java] Cannot install app engine plugin in eclipse 3.5 (Galileo)
Hi Uros, Could you try installing again? I think there may have been intermittent connection issues. jason On Mon, Dec 28, 2009 at 4:21 AM, Uros uipa...@gmail.com wrote: Hello, When I try to install app engine plugin in eclipse I get the following error: An error occurred while collecting items to be installed session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Collect, operand=, action=). Unable to read repository at http://dl.google.com/eclipse/plugin/3.5/plugins/com.google.appengine.eclipse.sdkbundle.1.3.0_1.3.0.v200912141120.jar. Read timed out An error occurred while collecting items to be installed An exception stack trace is not available. Unable to read repository at http://dl.google.com/eclipse/plugin/3.5/plugins/com.google.appengine.eclipse.sdkbundle.1.3.0_1.3.0.v200912141120.jar. java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at org.apache.commons.httpclient.ContentLengthInputStream.read (ContentLengthInputStream.java:170) at java.io.FilterInputStream.read(Unknown Source) at org.apache.commons.httpclient.AutoCloseInputStream.read (AutoCloseInputStream.java:108) at java.io.FilterInputStream.read(Unknown Source) at org.apache.commons.httpclient.AutoCloseInputStream.read (AutoCloseInputStream.java:127) at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer $1.performFileTransfer(AbstractRetrieveFileTransfer.java:140) at org.eclipse.ecf.filetransfer.FileTransferJob.run (FileTransferJob.java:73) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Collect, operand=, action=). An exception stack trace is not available. eclipse.buildId=M20090917-0800 java.version=1.6.0_17 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.jee.product Is there any workaround to this problem? Thanks, Uros -- 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. -- 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: https on my domain
I just found this SSL/HTTPS Support on Google Apps domains (issue 792) on http://code.google.com/p/googleappengine/issues/detail?id=792q=httpscolspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component. There are 50+ comments on this issue. On Jan 3, 10:26 am, Pion onlee2...@gmail.com wrote: http://www.slideshare.net/bess.ho/google-health-architecture-api (slide 28) shows that Google Health is using Google App Engine. I just registered to Google Health. After logging in, the url of the Google Health ishttps://health.google.com/health/p/-- notice the https and no *.appspot.com How is it done? Thanks in advance for your help. On Jan 3, 10:01 am, Pion onlee2...@gmail.com wrote: http://code.google.com/appengine/kb/general.html#httpsappssays, Can I use SSL (HTTPS) on App Engine with my Google Apps domain? All secure traffic with Google App Engine must be served from your appspot.com domain (https://your-app-id.appspot.com). If you are serving your app off of a Google Apps domain, you must direct all secure traffic through your app's appspot domain. On Thursday, October 16, 2008,http://googleappengine.blogspot.com/2008/10/announcing-https-support-... says, You may be wondering why we're only supporting appspot.com right now, and not arbitrary Google Apps domains. This has to do with fundamental limitations in the SSL protocol. We're currently investigating workarounds for this using e.g. SNI, which provides a viable solution for newer browsers--we'll keep you posted! I don't see it the product roadmaphttp://code.google.com/appengine/docs/roadmap.html. What's the latest status/plan on this? -- 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.
Re: [appengine-java] SUBSTRING function for JPA
It's not implemented. Could you please file a bug? http://code.google.com/p/datanucleus-appengine/issues/list Thanks, Max On Sun, Jan 3, 2010 at 7:16 AM, Wong lhw...@gmail.com wrote: SUBSTRING function for JPA is not working. entityManager.createQuery(SELECT SUBSTRING(v.name, 1, 3) from Venue v) return v.name but NOT the substring. Anyone has any idea? -- 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%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- 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.
Re: [appengine-java] Set cache expiration time for many static files (GAE+GWT)
I believe that the suggested configuration for GWT is: static-files include path=**.nocache.* expiration=1s/ include path=** expiration=30d/ /static-files Does that work? If not, please send me your web.xml and appengine-web.xml (privately if you want) and I'll determine why this configuration is blowing up to 100 URLMap entries. There's a combinatorial issue here between static-file patterns, authentication patterns, and filter patterns that could be causing trouble. On Fri, Jan 1, 2010 at 3:16 PM, Nohu civle...@gmail.com wrote: Hello I am developing some application written in GWT on App Engine. I'm on optimalization stage, so i want to allow browsers to cache as much of static files as possible. If I don't put any static files in appengine-web.xml directly, App Engine threat all files in war directory as static files (except WEB-INF directory) and when I deploy my application I have about 450 of them. I read (http://code.google.com/p/googleappengine/issues/detail? id=1662 http://code.google.com/p/googleappengine/issues/detail?id=1662) that App Engine sets default cache expiration time to 10 minutes (which is too short). So, if I want to set different time I need to define all my static files in appengine-web.xml (because if I define even one static file, App Engine abandon his default behavior, and don't look automatically for other static files) and set my expiration time for them in expiration attribiute. And then we come to my problem. When I put all my static files in appengine-web.xml for example like this: static-files include path=/**.cache.* expiration=3000d/ include path=/**.png expiration=30d/ include path=/**.gif expiration=30d/ include path=/**.jpg expiration=30d/ include path=/**.css expiration=30d/ include path=/**.html expiration=30d/ /static-files on deploy I have error: Unable to update app: Error posting to URL:xxx 400 Bad Request Error when loading application configuration: Invalid object: Found more than 100 URLMap entries in application configuration See the deployment console for more details As I understand App Engine maps every of my defined static files to URL's, and it exceeds some limits (http://code.google.com/p/googleappengine/issues/detail? id=1444 http://code.google.com/p/googleappengine/issues/detail?id=1444), but why was that working when I didn't specify static files in appengine-web.xml? App Engine choosed even more static files then (all from war directory). GWT generates many static files for its own (many js files, that can be cached forever), and if you use runAsync code splitting, there are even more of them. It's essential in GWT to allow cache this files, because that's what GWT is! If they are downloaded every time when user requests page, it doesn't have sense (at least in performance meaning). I assume that App Engine and GWT combination has strong support from Google (Eclipse plugin for example makes developing with them so easy), so I think that there have to be some solution. Is there any workaround for it? I just want to set cache expiration time for my static files. Marcin -- 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%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- 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] db error on 2010: Persistent class Class guestbook.Greeting does not seem to have been enhanced.
Dear Sir, I got this db error on th efirst working day of 2010. Please see the erros in details. I run theis as an wev application and lunch the GUI as: http://localhost:8080/index.html It seems the db has some changes recently. Please advise me. Thanks. John errors HTTP ERROR: 500 Persistent class Class guestbook.Greeting does not seem to have been enhanced. You may want to rerun the enhancer and check for errors in the output. has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class. RequestURI=/ Caused by: javax.jdo.JDOUserException: Persistent class Class guestbook.Greeting does not seem to have been enhanced. You may want to rerun the enhancer and check for errors in the output. has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class. at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException (NucleusJDOHelper.java:375) at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:230) at org.apache.jsp.guestbookujsp_jsp._jspService (guestbookujsp_jsp.java:94) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:324) at org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at com.google.appengine.tools.development.PrivilegedJspServlet.access $101(PrivilegedJspServlet.java:23) at com.google.appengine.tools.development.PrivilegedJspServlet$2.run (PrivilegedJspServlet.java:59) at java.security.AccessController.doPrivileged(Native Method) at com.google.appengine.tools.development.PrivilegedJspServlet.service (PrivilegedJspServlet.java:57) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at com.google.appengine.tools.development.StaticFileUtils.serveWelcomeFileAsForward (StaticFileUtils.java:80) at com.google.appengine.tools.development.LocalResourceFileServlet.maybeServeWelcomeFile (LocalResourceFileServlet.java:254) at com.google.appengine.tools.development.LocalResourceFileServlet.doGet (LocalResourceFileServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:121) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService $ApiProxyHandler.handle(JettyContainerService.java:342) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at
[appengine-java] Re: Set cache expiration time for many static files (GAE+GWT)
That was the answer I was hoping for. Yes, that configuration works. Thank you - very much appreciated! Strange thing is, that if I use configuration: static-files include path=**.nocache.* expiration=1s/ include path=/**.cache.* expiration=3000d/ include path=/**.png expiration=30d/ include path=/**.gif expiration=30d/ include path=/**.jpg expiration=30d/ include path=/**.css expiration=30d/ include path=/**.html expiration=30d/ /static-files it doesn't work (Bad request error, Found more than 100 URLMap entries in application configuration), but if I use configuration (omit include path=**.nocache.* expiration=1s/): static-files include path=/**.cache.* expiration=3000d/ include path=/**.png expiration=30d/ include path=/**.gif expiration=30d/ include path=/**.jpg expiration=30d/ include path=/**.css expiration=30d/ include path=/**.html expiration=30d/ /static-files or static-files include path=**.nocache.* expiration=1s/ include path=** expiration=30d/ /static-files it works fine with the same web.xml file in all cases. All in all, many thanks for that. Marcin On 4 Sty, 19:49, Don Schwarz schwa...@google.com wrote: I believe that the suggested configuration for GWT is: static-files include path=**.nocache.* expiration=1s/ include path=** expiration=30d/ /static-files Does that work? If not, please send me your web.xml and appengine-web.xml (privately if you want) and I'll determine why this configuration is blowing up to 100 URLMap entries. There's a combinatorial issue here between static-file patterns, authentication patterns, and filter patterns that could be causing trouble. On Fri, Jan 1, 2010 at 3:16 PM, Nohu civle...@gmail.com wrote: Hello I am developing some application written in GWT on App Engine. I'm on optimalization stage, so i want to allow browsers to cache as much of static files as possible. If I don't put any static files in appengine-web.xml directly, App Engine threat all files in war directory as static files (except WEB-INF directory) and when I deploy my application I have about 450 of them. I read (http://code.google.com/p/googleappengine/issues/detail? id=1662 http://code.google.com/p/googleappengine/issues/detail?id=1662) that App Engine sets default cache expiration time to 10 minutes (which is too short). So, if I want to set different time I need to define all my static files in appengine-web.xml (because if I define even one static file, App Engine abandon his default behavior, and don't look automatically for other static files) and set my expiration time for them in expiration attribiute. And then we come to my problem. When I put all my static files in appengine-web.xml for example like this: static-files include path=/**.cache.* expiration=3000d/ include path=/**.png expiration=30d/ include path=/**.gif expiration=30d/ include path=/**.jpg expiration=30d/ include path=/**.css expiration=30d/ include path=/**.html expiration=30d/ /static-files on deploy I have error: Unable to update app: Error posting to URL:xxx 400 Bad Request Error when loading application configuration: Invalid object: Found more than 100 URLMap entries in application configuration See the deployment console for more details As I understand App Engine maps every of my defined static files to URL's, and it exceeds some limits (http://code.google.com/p/googleappengine/issues/detail? id=1444 http://code.google.com/p/googleappengine/issues/detail?id=1444), but why was that working when I didn't specify static files in appengine-web.xml? App Engine choosed even more static files then (all from war directory). GWT generates many static files for its own (many js files, that can be cached forever), and if you use runAsync code splitting, there are even more of them. It's essential in GWT to allow cache this files, because that's what GWT is! If they are downloaded every time when user requests page, it doesn't have sense (at least in performance meaning). I assume that App Engine and GWT combination has strong support from Google (Eclipse plugin for example makes developing with them so easy), so I think that there have to be some solution. Is there any workaround for it? I just want to set cache expiration time for my static files. Marcin -- 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%2bunsubscr...@googlegroups.com . For more options, visit this group at
[appengine-java] Re: Could not fetch URL with URLFetchService but with HttpClient
alrighty, gotcha now. thanks for the clarification. On Jan 3, 2:59 pm, m seleron seler...@gmail.com wrote: Hi, I'm sorry for being not able to explain adequately. I tried. cfm?fuseaction=Reports.SetReport ^ I think that this sign is a cause in the development where the Exception occurs. However, even if this sign is included I do not think that production garish excetion is generated. The appearance is seen for a while. If there is no workaround There might be a necessity for doing post to the Issue list. thanks. 2010/1/3 derkent derkentgib...@gmail.com: hey thanks, you seem to be right. It seems a bug in the sdk, in production the problem goes away. I am not sure what you mean though when you say, when value of the url paramater dot is included. Thanks again, On Jan 1, 8:42 pm, seleronm seler...@gmail.com wrote: Hi, I tried a little. ( SDK 1.3.0) The condition that IOException is generated when value of the URL parameter .(dot) is included. This is not generated in production. I think that the possibility of bug of development environment(SDK). thanks. I have an url which is redirecting: http://www.accessdata.fda.gov/Scripts/cder/DrugsatFDA/index.cfm?fusea... Reports.SetReportrptname=1reportSelectDate=12%2F2009ta=Submits org.apache.http.client.HttpClient can follow the redirect without any problem and get the content. However URLFetchService has problems following the redirects, java.io.IOException: Could not fetch URL. Clearly the implementations are different, but I wonder how I can get the URLFetchService to also read in that url. Could this be a bug? If I ask HttpClient not to follow the redirect, it comes back with temporarily moved, which I believe is HTTP Error 302. Any help would be very kind. The code using the URLFetchService: URL url = new URL(urlStr); URLFetchService urlFetchService = URLFetchServiceFactory.getURLFetchService(); HTTPRequest httpRequest = new HTTPRequest(url, HTTPMethod.GET,followRedirects()); HTTPResponse response = urlFetchService.fetch(httpRequest); The code using HTTPClient String url = http://www.accessdata.fda.gov/Scripts/cder/DrugsatFDA/ index.cfm? fuseaction=Reports.SetReportrptname=1reportSelectDate=12%2F2009ta=Submits ; HttpClient httpclient = new DefaultHttpClient (); httpclient.getParams().setBooleanParameter ( http.protocol.handle-redirects, true); HttpGet httpGet = new HttpGet (url); ResponseHandlerString responseHandler = new BasicResponseHandler (); String responseBody; try { responseBody = httpclient.execute(httpGet, responseHandler); System.out.println (responseBody); } catch (ClientProtocolException e) { e.printStackTrace (); } catch (IOException e) { e.printStackTrace (); } -- 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 athttp://groups.google.com/group/google- appengine-java?hl=en. -- 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 athttp://groups.google.com/group/google-appengine-java?hl=en. -- 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: db error on 2010: Persistent class Class guestbook.Greeting does not seem to have been enhanced.
If you are using Eclipse, this can typically be fixed by making a small change to one of your JDO enhanced classes (like, hit space and then delete the space), save the file, and try re-sending the app to Google. I know it sounds strange (you effectively are not doing anything to the actual file in the end), but it works. On Jan 4, 11:41 am, John Lin john...@google.com wrote: Dear Sir, I got this db error on th efirst working day of 2010. Please see the erros in details. I run theis as an wev application and lunch the GUI as:http://localhost:8080/index.html It seems the db has some changes recently. Please advise me. Thanks. John errors HTTP ERROR: 500 Persistent class Class guestbook.Greeting does not seem to have been enhanced. You may want to rerun the enhancer and check for errors in the output. has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class. RequestURI=/ Caused by: javax.jdo.JDOUserException: Persistent class Class guestbook.Greeting does not seem to have been enhanced. You may want to rerun the enhancer and check for errors in the output. has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class. at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException (NucleusJDOHelper.java:375) at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:230) at org.apache.jsp.guestbookujsp_jsp._jspService (guestbookujsp_jsp.java:94) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:324) at org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at com.google.appengine.tools.development.PrivilegedJspServlet.access $101(PrivilegedJspServlet.java:23) at com.google.appengine.tools.development.PrivilegedJspServlet$2.run (PrivilegedJspServlet.java:59) at java.security.AccessController.doPrivileged(Native Method) at com.google.appengine.tools.development.PrivilegedJspServlet.service (PrivilegedJspServlet.java:57) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at com.google.appengine.tools.development.StaticFileUtils.serveWelcomeFileAsFo rward (StaticFileUtils.java:80) at com.google.appengine.tools.development.LocalResourceFileServlet.maybeServeW elcomeFile (LocalResourceFileServlet.java:254) at com.google.appengine.tools.development.LocalResourceFileServlet.doGet (LocalResourceFileServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:121) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:54) at
[appengine-java] Task Queues... errors...
Hello, I'm getting an error when I try and upload my app (xdh- playlist): com.google.appengine.tools.admin.AdminException: Unable to update app: Error posting to URL: http://appengine.google.com/api/queue/update?app_id=xdh-playlistversion=1; 500 Internal Server Error Server Error (500) A server error has occurred. at com.google.appengine.tools.admin.AppAdminImpl.update (AppAdminImpl.java:62) at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy (AppEngineBridgeImpl.java:271) at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace (DeployProjectJob.java:148) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run (InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: java.io.IOException: Error posting to URL: http://appengine.google.com/api/queue/update?app_id=xdh-playlistversion=1; 500 Internal Server Error Server Error (500) A server error has occurred. at com.google.appengine.tools.admin.ServerConnection.send (ServerConnection.java:143) at com.google.appengine.tools.admin.ServerConnection.post (ServerConnection.java:81) at com.google.appengine.tools.admin.AppVersionUpload.send (AppVersionUpload.java:522) at com.google.appengine.tools.admin.AppVersionUpload.updateQueue (AppVersionUpload.java:255) at com.google.appengine.tools.admin.AppVersionUpload.doUpload (AppVersionUpload.java:134) at com.google.appengine.tools.admin.AppAdminImpl.update (AppAdminImpl.java:56) ... 4 more I'm using Eclipse Galileo, App Engine SDK 1.3.0, Java 1.6. This is annoying, because it just suddenly started happening, and the queue file had loaded before. Anyone else having this issue? Or better yet, could help me with getting this taken care of? Here is my queue.xml file, for reference: ?xml version=1.0 encoding=UTF-8? queue-entries queue nameload/name rate1/s/rate bucket-size1/bucket-size /queue queue nameclean/name rate1/s/rate bucket-size1/bucket-size /queue queue nameprocess/name rate2/s/rate bucket-size2/bucket-size /queue queue namefinalize/name rate1/s/rate bucket-size1/bucket-size /queue queue namemakelist/name rate1/s/rate bucket-size1/bucket-size /queue queue namesendlist/name rate1/s/rate bucket-size1/bucket-size /queue /queue-entries -- 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: why my app on GAE first access is so slow
There are some proposed new features for GAE to allow apps to keep their byte-code 'warm', either on the application server, or as a pre- initialized image on disk that can be loaded and not incur a full initialization. Check out this issue, contribute suggestions and vote for it if you want to see a feature like this; http://code.google.com/p/googleappengine/issues/detail?id=2456 On Nov 7 2009, 3:22 am, Prashant antsh...@gmail.com wrote: yes, your guess is right. if your app is inactive then app engine will remove your app servlets from memory and reloads from datastore (or wherever it is stored) when you access it first time. -- 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] Problem accessing a file on file system
I am using a RandomAccessFile, which is whitelisted on Google App Engine. My simple code looks like: RandomAccessFile file = new RandomAccessFile(/WEB-INF/classes/ myfile.dat, r); which gets a java.security.AccessControlException: access denied (java.io.FilePermission \WEB-INF\classes\myfile.dat read) at java.security.AccessControlContext.checkPermission (AccessControlContext.java:323) at java.security.AccessController.checkPermission (AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java: 532) Same thing if I put the file in /WEB-INF directly. Am I missing something? Thanks for your help. -- 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.