[appengine-java] May I use AppEngine SDK internally without deploy to Google AppEngine?
For some reasons, I would like to run our GAE apps internally (with some custom hooks instead of re-writing the app). May I do that? 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: May I use AppEngine SDK internally without deploy to Google AppEngine?
Appscale is promising. On Dec 21, 3:09 am, A. Stevko andy.ste...@gmail.com wrote: Trung, The dev server is not the only way to run app engine locally. Take a look at these projects to see if they can meet your needs...http://code.google.com/p/appscale/ http://code.google.com/p/appscale/http://code.google.com/p/typhoonae/ http://code.google.com/p/typhoonae/ On Mon, Dec 20, 2010 at 11:54 AM, Ikai Lan (Google) ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote: You sure can, but you should be aware of many of the limitations of the development server: - it's slow - the datastore can be wiped on upgrade (this is an ugly bug that pops it head up now and then) - it's single threaded - no real accounts support - ... many, many more limitations -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger:http://googleappengine.blogspot.com Reddit:http://www.reddit.com/r/appengine Twitter:http://twitter.com/app_engine On Mon, Dec 20, 2010 at 7:13 AM, Trung gwtdevelo...@gmail.com wrote: For some reasons, I would like to run our GAE apps internally (with some custom hooks instead of re-writing the app). May I do that? 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.comgoogle-appengine-java%2B 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.comgoogle-appengine-java%2B 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: What is the best option for RPC (web services) on App engine?
http://code.google.com/p/gwt-syncproxy/ may be suitable for your needs. On Jun 10, 11:13 pm, dilbert dilbert.elbo...@gmail.com wrote: First I'd like to explain what I mean by RPC. I'd like to be able to write interfaces like this (simple Java interface): public interface EchoService { String echo(String message); } The framework would allow the creation of client classes that would handle the serialization from/to the RPC service. Of course the framework should support the serialization of ArrayLists, HashMaps and other collections and should also support the serialization of objects marked with the java.io.Serializable interface (or some other interface). We would create the RPC Client this way: EchoService echoService = RpcClientFactory.createInstance(EchoService.class,http://bla.com/ smartApp/echo); And of course use it this way: String echoMessage = echoService.echo(The message !!!); The server side servlet would implement the previously mentioned interface. public class Service extends WhateverServlet implements EchoService { @Override String echo(String message) { return server sends: + message; } } A few additional nice features to have would be: -support for asynchronous calls (where the developer would provide a callback for handling the result, similar to GWT RPC) -the developers should be able to access the RPC client somehow to be able to handle Cookies or other http headers. -the client side should be usable from Android. After a long search I have found that the framework that most closely matches these requirements is Hessian (http://hessian.caucho.com/). It uses a binary protocol so it should be very fast and it works on Android. AFAIK it does not support async calls. However, not all is well. The current Hessian implementation does not handle exceptions well. It throws a SecurityException like this: java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on private java.lang.Throwable java.lang.Throwable.cause I considered GWT RPC for a while but it does not have a proper Java client or I could not find one. So I wanted to ask is there any other library that could be used in this case? Could the App engine team write such a library and add it to the SDK. Any suggestions? -- 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] Simple Put, get operations in transaction
I have a simple test as below public class TestDS extends TestCase{ private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()); @Before public void setUp() { helper.setUp(); } @After public void tearDown() throws Exception{ Thread.sleep(100); helper.tearDown(); } public void testWithoutTransaction() throws Exception{ DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); doTest(ds, null); } public void testWithTransaction() throws Exception{ DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); Transaction txn = ds.beginTransaction(); doTest(ds, txn); txn.commit(); } public void doTest(DatastoreService ds, Transaction txn) throws Exception{ Key parentKey = KeyFactory.createKey(parent, default); Entity entity = new Entity(Entity01, parentKey); entity.setProperty(prop01, Property 01); Key key = ds.put(txn, entity); Entity entity2 = ds.get(txn, key); System.out.println(entity2.getProperty(prop01)); } } For the test testWithoutTransaction, it run successful. However, the test testWithTransaction, exception EntityNotFoundException is raised at line Entity entity2 = ds.get(txn, key); Why we can not get the entity we just put into datastore within a transaction? Please help. Thanks 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.
[appengine-java] Appstats make request to API call memcache.Set() was too large
I tried to use Appstats. However, Appstats uses and shows a lot of raw (low level) data. Sometime memcache API throws exception as below: com.google.appengine.api.memcache.LogAndContinueErrorHandler handleServiceError: Service error in memcache com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Unknown exception setting 2 keys at com.google.appengine.api.memcache.MemcacheServiceImpl.makeSyncCall(MemcacheServiceImpl.java: 183) at com.google.appengine.api.memcache.MemcacheServiceImpl.putAll(MemcacheServiceImpl.java: 420) at com.google.appengine.api.memcache.MemcacheServiceImpl.putAll(MemcacheServiceImpl.java: 459) at com.google.appengine.tools.appstats.MemcacheWriter.persist(MemcacheWriter.java: 264) at com.google.appengine.tools.appstats.MemcacheWriter.commit(MemcacheWriter.java: 177) at com.google.appengine.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java: 94) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: 97) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: 35) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: 238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 542) at org.mortbay.jetty.HttpConnection $RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: 76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: 135) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 243) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5485) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5483) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: 24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: 398) at com.google.net.rpc.impl.Server$2.run(Server.java:852) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: 56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: 536) at com.google.net.rpc.impl.Server.startRpc(Server.java:807) at com.google.net.rpc.impl.Server.processRequest(Server.java:369) at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: 442) at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java: 319) at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java: 290) at com.google.net.async.Connection.handleReadEvent(Connection.java: 474) at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: 831) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: 207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: 103) at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: 251) at com.google.apphosting.runtime.JavaRuntime $RpcRunnable.run(JavaRuntime.java:404) at java.lang.Thread.run(Unknown Source) Caused by: com.google.apphosting.api.ApiProxy $RequestTooLargeException: The request to API call memcache.Set() was too large. at com.google.apphosting.runtime.ApiProxyImpl $AsyncApiFuture.rpcFinished(ApiProxyImpl.java:263) at com.google.net.rpc.RpcStub$RpcCallbackDispatcher
[appengine-java] Re: ANN: Firefox add-on for tracking GAE estimated cost
Great!!! On Apr 7, 5:00 pm, radomir radomi...@gmail.com wrote: Hi, I made a Firefox extension that collects estimated cost from App Engine response headers and shows the total in the Firefox status bar. If anyone's interested, the add-on can be downloaded from:http://radomirml.com/2010/04/06/track-appengine-estimated-cost-with-f... Radomir -- 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: Discussion on will-it-play-in-app-engine
I tried myfaces 2.0.0 beta 3 successfully. All you need is myfaces jars, EL implementation jars (I used EL jars from Tomcat) and a context parameter context-param param- nameorg.apache.myfaces.config.annotation.LifecycleProvider/param- name param- valueorg.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider/ param-value /context-param I am not sure NoInjectionAnnotationLifecycleProvider is suitable for you. Hope this help. http://www.gdevelop.com/w/blog/2010/04/01/myfaces-2-0-on-gae/ On Mar 31, 3:01 pm, Haroon Idrees haroo...@gmail.com wrote: Please Help I want to test JSF 2.0 over google Appengine ,I followed all instruction given athttps://sites.google.com/a/wildstartech.com/adventures-in-java/Java-P... But still getting this error java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google App Engine developer's guide for This change is only using 1.3.2 latest sdk on ubuntu -- 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: Class XXX has multiple relationship fields of type YYYY
Hi GAE team, Any workarounds for this issue? Thanks On Feb 14, 8:55 am, Payam pmoghad...@gmail.com wrote: The problem is still not solved. Although you can persist an object with multiple relations of the same type. When you actually query the object, the retrieved object has duplicates for the multiple relations. As in, if I were to persist instances A, B inside C. When I query for C, both objects retrieved will be A. There will be no B. This is a serious bug! On Jan 26, 4:54 pm, oth other...@gmail.com wrote: Michael, In your jdoconfig.xml file add this entry: property name=datanucleus.appengine.allowMultipleRelationsOfSameType value=true/ Thanks On Jan 26, 3:12 pm, Michael Shtelma mshte...@gmail.com wrote: Hi all, I am also experiencing this problem on GAE 1.3.0. Using multipleRelationsOfSameTypeAreErrors helps not in all cases, when I am trying to read such entities I get mentioned exception. Are the any solution for the 1.3.0 ? Thanks, Michael On Jan 21, 9:20 am, cowper iamco...@gmail.com wrote: Hi, I have a similar issue with 1.3.0 however it arises when the types are the same and not related to inheritance of any type. The work around suggested doesn't seem to work. Is the workaround valid for 1.3.0? thx, Conor On Dec 4 2009, 9:52 pm, Max Ross (Google) maxr +appeng...@google.com wrote: SDK 1.2.8 contains a new check that detects if one of your JDO or JPA model objects has two relationship fields of the same type. For example: class A { ListB bList; ListB anotherBList; } Unfortunately I was a little too aggressive with this check, so the following also run afoul of the check: abstract class B {} class C extends B {} class D extends B {} class A { ListC cList: ListD dList; } If you get an exception that says Class XXX has multiple relationship fields of type . This is not yet supported. and your class hierarchy resembles the one above, you can disable this check by with the following config property: property name=datanucleus.appengine.multipleRelationsOfSameTypeAreErrors value=true/ We'll get this fixed shortly. Sorry for the trouble, Max -- 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] Is there any lib (UI front-end and servlet backend) for editing datastore?
Hi, Is there any lib for editing datastore? Similar to Datastore Viewer with some additional features. Editing means: + New entity: create a empty entity + Delete existing entity + Add a property to entity + Remove a property from entity + Change a property's value 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] How to list all entity kinds programmatically?
Hi, I'd like to know whether a Java program can know the list of entity KIND currently in the datastore. Thanks 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.
[appengine-java] Re: How to best run GWTTestCase tests that involve persistence?
Hi, 1. I think the proper way is separating the test from QuestionServiceImpl. 2. For testing QuestionServiceImpl, you should run two separate parts: server side and client side. a) In your case, there are no special in the server side. b) In the client side, you can use GWTTestcase. Your test logic is on the client side. However, testing with GWTTestcase are slow. SyncProxy can be used on the client side to invoke your remote service. See http://www.gdevelop.com/w/blog/2010/01/10/testing-gwt-rpc-services/ and http://www.gdevelop.com/w/blog/2010/03/13/invoke-gwt-rpc-services-deployed-on-google-app-engine/ for how to use SyncProxy. On Mar 14, 8:34 pm, Christian Schuhegger christian.schuheg...@gmail.com wrote: Hello, I am doing experiments with a simple service QuestionService and I have a GWTTestCase that calls the QuestionService. All works fine, but my problem is that in the QuestionServiceImpl constructor I have to use the LocalServiceTestHelper helper infrastructure in order to make the whole test case work. My problem is now that I have to introduce dependencies in my QuestionServiceImpl on the appengine-testing jar in order to make my GWTTestCase work! My initial tries were to use the LocalServiceTestHelper directly in the gwtSetUp and gwtTearDown methods of the GWTTestCase but that does of course not work, because those classes are not compatible with the GWT (they obviously cannot and should not be compiled to java script). Is there any good way around this that I have to introduce a dependency on the appengine-testing infrastructure in my service implementation? Can I somehow detect that I am running in a GWTTestCase, then I could at least create a if-then-else block that only instantiates the helper in test mode. Many thanks for any recommendations! @RemoteServiceRelativePath(question) public interface QuestionService extends RemoteService { public QuestionDefinition createQuestionDefinition(String question); public void deleteQuestionDefinition(QuestionDefinition qd); public QuestionDefinition findQuestionDefinitionById(String key); } public class QuestionServiceImpl extends RemoteServiceServlet implements QuestionService { private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()); public QuestionServiceImpl() { super(); helper.setUp(); } public QuestionDefinition createQuestionDefinition(String question) { PersistenceManager pm = PMF.get().getPersistenceManager(); QuestionDefinition qd = new QuestionDefinition(question); try { pm.makePersistent(qd); } finally { pm.close(); } return qd; } ... } public class GwtTestQuestionService extends GWTTestCase { @Override public String getModuleName() { return questionservice; } public void testQuestionServiceCreate() { QuestionServiceAsync questionService = GWT.create(QuestionService.class); String question = Are you happy?; questionService.createQuestionDefinition(question, new AsyncCallbackQuestionDefinition() { public void onFailure(Throwable caught) { Assert.fail(); finishTest(); } public void onSuccess(QuestionDefinition result) { Assert.assertNotNull(result); finishTest(); } }); delayTestFinish(5000); } } -- 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] New blog post: Invoke GWT RPC services deployed on Google App Engine
A new post http://www.gdevelop.com/w/blog/2010/03/13/invoke-gwt-rpc-services-deployed-on-google-app-engine/ shows how to invoke GWT RPC services deployed on Google App Engine from Java client. Shorten url http://goo.gl/fb/n99D Any feedback can be left on my blog, thanks. Trung -- 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: JDO - GWT - JUNIT testing examples
The SyncProxy can be used for this purpose. See http://www.gdevelop.com/w/blog/2010/01/10/testing-gwt-rpc-services/ for details Hope this help, Trung http://www.gdevelop.com/ On Jan 26, 10:19 pm, aswath satrasala aswath.satras...@gmail.com wrote: Hi, I am using GWT and JDO to write a simple create and list Employee application. I got this working using TransferObjects . How to test the GWT asysnc calls with local datastore using Junit. -Aswath -- 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] What Java MVC framework do you use on AppEngine?
Coming from Ruby on Rails background, I have tried to run Rails on Jruby on AppEngine. While it works, but it has ridiculous startup time. Well over 20 seconds to spin up an instance, and sometimes it even hits the 30 seconds limit. Anyway, out of curiosity, what is the equivalent MVC framework in the Java world that works like Rails? Preferable native Java, not something like Grails on Groovy. Is it even possible to have a MVC framework on AppEngine that takes no more than 1 second to spin up? 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: Error 500 - Loading data to memory during startup
Yeah, AppEngine drops your request after 30 seconds. My app takes 20 seconds to initialize in development, and half of the times it will finish loading within 30 seconds. Other times it goes pass 30 seconds and gets the same 500 error like yours. Google needs to make an exception for the initial cold boot timeout. On Oct 18, 1:57 pm, Joe Prasanna kumar joebi.m...@gmail.com wrote: Hi, I am working with my friend to build an app (hoogentia.appspot.com) which requires loading some learned model files to memory. I have a startup servlet that does this (loading model files to memory). Since it needs more mem, I run this app in dev mode with memory setting of -Xms1024m -Xmx2048m. I dont have any issues in development but when i deploy it to app engine and access my application, the startup servlet is invoked and it comes up with an Error 500. I am not getting any useful info from the logs. I am assuming the issue is with jvm settings for app engine in production. I looked at this thread (http://groups.google.com/group/google-appengine-java/browse_thread/th...) and modified appcfg.sh to java -Xmx2000m -cp $SDK_LIB/appengine-tools-api.jar \ com.google.appengine.tools.admin.AppCfg $* After doing an update, I still get the 500 Error. In dev mode, it takes like 80 seconds for the model to get loaded in memory. Any thoughts / help / suggestions greatly appreciated, thanks Joe. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---