[appengine-java] Re: API CRUD interface for application ?
What about generating DAO classes ? http://code.google.com/p/audao/ The generated code calls GAE low-level datastore API directly without reflection. Vaclav On Oct 11, 11:50 am, Maxim Veksler wrote: > Hi Didler, > > This is a bit off topic from the main discussion I was hoping to have on > this thread but still: Objectify is an over kill *for our needs*. It's > faster for us to simply wrap calls to low level DataStore in > LowLevelDataStore.java calls we make (which return an > Entity, List, Iterable and co.) in a Repository.java that > transforms them into application POJO then use Objectify for this which we > will need to register the classes and pass through the Objectify > abstraction. > > Objectify, Twig itself are great libraries and we are using them in GUI apps > that are running on the app engine. > > Maxim. > > On Mon, Oct 11, 2010 at 10:01 AM, Didier Durand > wrote: > > > Hi Maxim, > > > When you say Objectify is overkill,what do you mean ? Did you > > benchmark it ? > > > I switched ito it from JDO and I am pretty satisfied: slick and fast. > > What is bad about it from your perspective ? > > regards > > didier > > > On Oct 10, 11:28 pm, Maxim Veksler wrote: > > > Hello, > > > > The application we run is a backend online service and has no GUI. > > > We some how need to be able to upload new content / update existing > > > datastore entity records. > > > > The database model is relatively simple: 1 to many relationships on all > > of > > > the kinds. > > > > I would be happy to use learn about a library / some API configuration > > > option to expose an interface so that external code can do the CRUD > > logic. > > > Is there any support for this in GAE / other library that runs on GAE? > > > > If this plays any role in your suggestions: > > > We're super focused on response times so: We currently use "low level" > > data > > > store API. > > > I actually tried Objectify but found even it to be an over kill for our > > > needs. > > > I also deleted all the jars the were added by GAE eclipse plugin but are > > not > > > used by the code. > > > > Actually the list of jars used by the application consists of: > > > > ls war/WEB-INF/lib/ > > > appengine-api-1.0-sdk-1.3.7.jar appengine-jsr107cache-1.3.7.jar > > > jackson-core-asl-1.6.0.jar jsr107cache-1.1.jar > > > appengine-api-labs-1.3.7.jar EyeViewUtils-1.0.1-SNAPSHOT.jar > > > jackson-mapper-asl-1.6.0.jar log4j-1.2.16.jar > > > > Any recommendations / personal experience with this issue / pointers > > about > > > correct design of the interface / what technology to use and co. are > > highly > > > welcome and appreciated. > > > > Thank you, > > > Maxim. > > > -- > > 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.
Re: [appengine-java] OneToOne relationship with java.lang.Long ids
The ID for the owned child User instances has to be a Key or String type because the it contains both the reference to the parent(s) and the unique id of the object. A Long alone will not contain enough information to navigate the object model to it. I usually stick with String ids for all my types. You can create/encode/decode Keys easily using the KeyFactory. On Mon, Oct 11, 2010 at 8:03 PM, Rick Curtis wrote: > Hello all! I am new to GAE and have a pretty simple domain model that I'm > trying to persist. I am creating an Event(with a generated ID) and a > User(with a pre-defined ID) which is hosting the event. This is a one to one > relationship owned by the Event(@See below for code snippets). > > Upon commiting the transaction, I'm getting an exception which states > "Error in meta-data for User._id: Cannot have a java.lang.Long primary key > and be a child object (owning field is Event._host)." I did some searching > and came across this[1] post which suggested that I need to change my key > from a java.lang.Long to a com.google.appengine.api.datastore.Key. > > Since "The App Engine Java SDK includes an implementation of JPA 1.0 for > the App Engine datastore"[2]... I don't really need to use these internal > GAE classes to describe this mapping do I? Maybe I'm being a bit naive here, > but I have a hard time believing that this requirement/limitation is due to > the underlying database not being a relational database. > > Hopefully someone can shed some light on my findings. > > Thanks, > Rick > > @Entity > public class Event { > @Id > @GeneratedValue(strategy=GenerationType.IDENTITY) > Long _id; > > @OneToOne > User _host; > ... > } > > > @Entity > public class User { > @Id > Long _id; > ... > } > > [1] http://code.google.com/p/datanucleus-appengine/issues/detail?id=26 > [2]http://code.google.com/appengine/docs/java/datastore/usingjpa.html > > -- > 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: Cant compile javax.crypto
Hi Stuart, Yes, according to http://code.google.com/appengine/docs/java/jrewhitelist.html, javax.crypto is supported. Question: do you use GWT in your appl? In that case did you put your use of javax.crypto in client or shared ? didier On Ohttp://code.google.com/appengine/docs/java/jrewhitelist.htmlhttp://code.google.com/appengine/docs/java/jrewhitelist.htmlthttp://code.google.com/appengine/docs/java/jrewhitelist.htmluarct 11, 6:31 pm, Stuart Johnson wrote: > Anyone? It's ok to use javax.crypto in App Engine isn't it? -- 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] OneToOne relationship with java.lang.Long ids
Hello all! I am new to GAE and have a pretty simple domain model that I'm trying to persist. I am creating an Event(with a generated ID) and a User(with a pre-defined ID) which is hosting the event. This is a one to one relationship owned by the Event(@See below for code snippets). Upon commiting the transaction, I'm getting an exception which states "Error in meta-data for User._id: Cannot have a java.lang.Long primary key and be a child object (owning field is Event._host)." I did some searching and came across this[1] post which suggested that I need to change my key from a java.lang.Long to a com.google.appengine.api.datastore.Key. Since "The App Engine Java SDK includes an implementation of JPA 1.0 for the App Engine datastore"[2]... I don't really need to use these internal GAE classes to describe this mapping do I? Maybe I'm being a bit naive here, but I have a hard time believing that this requirement/limitation is due to the underlying database not being a relational database. Hopefully someone can shed some light on my findings. Thanks, Rick @Entity public class Event { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) Long _id; @OneToOne User _host; ... } @Entity public class User { @Id Long _id; ... } [1] http://code.google.com/p/datanucleus-appengine/issues/detail?id=26 [2]http://code.google.com/appengine/docs/java/datastore/usingjpa.html -- 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] what is sharding?
This is a bit of a stretch for this forum. Perhaps this explanation will help you understand the database design term. http://stackoverflow.com/questions/992988/what-is-sharding-and-why-is-it-important On Mon, Oct 11, 2010 at 4:30 AM, sagar misal wrote: > can anyone please make me understand what is this sharding and how to > implement it in java? > > -- > 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.
Re: [appengine-java] what is sharding?
http://en.wikipedia.org/wiki/Shard_(database_architecture) On Mon, Oct 11, 2010 at 7:30 AM, sagar misal wrote: > can anyone please make me understand what is this sharding and how to > implement it in java? > > -- > 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. > > -- Guit: Elegant, beautiful, modular and *production ready* gwt applications. http://code.google.com/p/guit/ -- 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: CPU Time Overload
Ok, I actually read that article before but somehow didnt think it would apply to me... Now I am using a counter object which I am retrieving by id, and trying to increment a value in an array by 1 and then just referencing that counter object to retrieve the values (instead of creating a new Vote object every time there is a vote) What I am experiencing now is that the integer in the array is not being incremented. It increments but then when I submit a new vote, retrieve the counter by poll_id, and read the value in the array, it is mysteriously back to its original value of zero. Its like its not being persistent, I am calling pm.makePersistent(counter) after incrementing, is there any known "gotchas" to incrementing an object or maintaining persistence? Attached is my counter object and vote(int answerId) is the method I am calling to increment the value in the array... -- 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. package net.creativelift.snappypoll; import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; import com.google.appengine.api.datastore.Key; @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Counter { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; @Persistent private String poll_id; @Persistent private int[] answers; public Counter(String poll_id, int[] answers) { this.poll_id = poll_id; this.answers = answers; } public Key getKey() { return key; } public int[] getAnswers() { return answers; } public String getPollId() { return poll_id; } public void setPollId(String poll_id) { this.poll_id = poll_id; } public int getVote(Integer answerId) { return answers[answerId]; } public int vote(int answerId) { answers[answerId] += 1; return answers[answerId]; } }
[appengine-java] Problem with large entities? Store in one or two separate entities
General question - If I have very large entities with information that varies in usage, should I split the information I use less into another entity? I'm creating fairly large entities (column wise) and was wondering what the proper strategy was to approach storing the properties. An example is, I'm creating profiles for people. This includes basic information like name, email, url, but also information like bios, interests, affiliations. 90%+ of the time I will not need the bios/interests/affiliations, just the name/email/url. Should I be splitting the larger blocks of information into another entity, and rather than just have a "Person" entity, instead have a "Person" entity AND a "PersonDetails" entity? I arrived at this concern when I was doing queries, and I fear that with loading larger entities I'm consuming too many resources getting each property. Is this something I should be concerned about? Or just query large entities and it won't matter. 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] Unable to upload application error - java.io.IOException: Error posting to URL: https://appengine.google.com/api/appversion/deploy?app_id=
Till yesterday, I was able to update my application. Suddenly the update started failing with an unspecified reason. Can any one help me to resolve this please!!!. This is the log: Unable to update: java.io.IOException: Error posting to URL: https://appengine.google.com/api/appversion/deploy?app_id=stocktrendsindia&version=2&; 400 Bad Request Client Error (400) The request is invalid for an unspecified reason. at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java: 149) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java: 82) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java: 582) at com.google.appengine.tools.admin.AppVersionUpload.deploy(AppVersionUpload.java: 541) at com.google.appengine.tools.admin.AppVersionUpload.commit(AppVersionUpload.java: 504) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java: 129) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) at com.google.appengine.tools.admin.AppCfg $UpdateAction.execute(AppCfg.java:547) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:138) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:61) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:57) com.google.appengine.tools.admin.AdminException: Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/deploy?app_id=stocktrendsindia&version=2&; 400 Bad Request Client Error (400) The request is invalid for an unspecified reason. at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 62) at com.google.appengine.tools.admin.AppCfg $UpdateAction.execute(AppCfg.java:547) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:138) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:61) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:57) Caused by: java.io.IOException: Error posting to URL: https://appengine.google.com/api/appversion/deploy?app_id=stocktrendsindia&version=2&; 400 Bad Request Client Error (400) The request is invalid for an unspecified reason. at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java: 149) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java: 82) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java: 582) at com.google.appengine.tools.admin.AppVersionUpload.deploy(AppVersionUpload.java: 541) at com.google.appengine.tools.admin.AppVersionUpload.commit(AppVersionUpload.java: 504) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java: 129) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) ... 4 more -- 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 is sharding?
can anyone please make me understand what is this sharding and how to implement it in java? -- 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] Is MemcacheService obtained from getMemcacheService("namespace") thread safe?
Yes. It's just a client. If you're really worried about this, you don't really save much by doing this, however, since the only real cost is object allocation. -- 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, Oct 11, 2010 at 5:01 AM, Maxim Veksler wrote: > Hi, > > Well the title pretty much says it all. > > Is the memcache low level interface of AppEngine Java SDK thread safe? I > would like to hold a reference to it in a static class level reference > field. > > > Thanks, > Maxim. > > -- > 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: AppEngine + Google Data APIs + OAuth
I have added sample code as well to this site (courtesy of Google! :) https://sites.google.com/site/oauthforapi/ On Oct 10, 11:31 am, Saqib Ali wrote: > Hello All, > > I noticed that there is not a lot of material (in fact none) on the > web for creating an app in App Engine that uses Google Data APIs and > OAuth for Authorization to the APIs. So I started working on a Google > Doc to document this process, which now has turned into a Google > Site:https://sites.google.com/site/oauthforapi/ (still in progress) > > I am looking for: > 1) Suggestions to improve this step-by-step; > 2) Few people to review this guide; > 3) Direct contributors to add content to the guide. I will add these > folks as contributors to the Google Site. > > Next, I am working on sample code that uses this stack. > > Saqib -- 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 and IP Addresses
For performance reasons Google Frontend servers use keep-alives by default unless you request non-persistent connection with http request header connection: close. On Oct 11, 5:34 pm, Benjamin wrote: > Guys - thank you. It's working great. I'm actually impressed at how I > can us the IP i get from google.com or appspot.com and as long as I > provide the host my POST get's directed to my app engine app. > > I will post more about this in my blog:http://nimbits.blogspot.com/ > > I now have an Arduino Microcontroller board with an Ethernet shield > that can post it's data directly to my Nimbits Data Logging Service on > App Engine :http://www.nimbits.com > > The Arduino C code is simply a basic web client (using ethernet.h) > that does: > > client.println("GET /service/currentvalue? > point=test&email=bsaut...@gmail.com&format=json HTTP/1.1"); > client.println("Host:nimbits1.appspot.com"); > client.println("Accept-Language:en-us,en;q=0.5"); > client.println("Accept-Encoding:gzip,deflate"); > client.println("Connection:close"); > client.println("Cache-Control:max-age=0"); > client.println(); > > Worth mentioning that I had trouble with http keep alives - i had to > add a connection close header. Not sure why. > > On Oct 10, 5:36 pm, Maxim Veksler wrote: > > > > > Exactly. > > > Usehttps://addons.mozilla.org/en-US/firefox/addon/6647/tosee what headers > > your browser send as part of the HTTP GET request and emulate them in C > > code. > > > Should work :). > > > On Sat, Oct 9, 2010 at 11:45 PM, Peter Ondruska > > wrote: > > > > When connecting to IP address you need to use HTTP host header so that > > > GAE knows which application/virtual server you want. > > > > On Oct 9, 6:26 pm, Benjamin wrote: > > > > I've been working on a challenge over the past couple of days and I > > > > could really use a knowledge transfer on App Engine, Domains and IP > > > > addresses. I seem to be missing something. > > > > > I'm trying to write a library for Arduino Micro-controllers to do HTTP > > > > Posts to a servlet hosted on appengine. For example The URL of the > > > > servlet is > > > > >http://nimbits1.appspot.com/service/currentvalue?point=test&format=json > > > > > Do to limitations on the Arduino device, i need to get an IP Address > > > > that will resolve to nimbits1.appspot.com first, before doing my post > > > > to /service/currentvalue?point=test&format=json > > > > > I have the C code to request an IP from DNS of a domain which works > > > > without a problem. So far so good. My problem is my requests seem to > > > > hit a brick wall when I try to use the IP instead of the Domain in my > > > > requests. > > > > > Let's say I ping nimbits1.appspot.com - I get 74.125.113.121 or > > > > 72.14.204.141 back from the DNS Server. This takes me to Google > > > > servers, but not my app. I'm guessing that the server want the > > > > subdomain in the request but i'm not provided one. > > > > > I registered a new domain: nimbits.org on godaddy and followed Nick > > > > Johnson's fine tutorial on mapping naked domains to have nimbits.org > > > > redirect to nimbits1.appspot.com (As a permanent redirect without > > > > masking) > > > > >http://blog.notdot.net/2009/12/Naked-domains-on-App-Engine > > > > > if i navigate tohttp://nimbits.orgIredirect ok tohttp:// > > > nimbits1.appspot.com > > > > > Further, if i do a wget in a linux terminal I can see the IP's i'm > > > > resolving to: > > > > > benja...@ben-ubws01:~$ wget nimbits.org > > > > --2010-10-09 12:20:43-- http://nimbits.org/ > > > > Resolving nimbits.org... 64.202.189.170 > > > > Connecting to nimbits.org|64.202.189.170|:80... connected. > > > > HTTP request sent, awaiting response... 301 Moved Permanently > > > > Location:http://nimbits1.appspot.com[following] > > > > --2010-10-09 12:20:44-- http://nimbits1.appspot.com/ > > > > Resolving nimbits1.appspot.com... 64.233.169.141 > > > > Connecting to nimbits1.appspot.com|64.233.169.141|:80... connected. > > > > HTTP request sent, awaiting response... 200 OK > > > > Length: unspecified [text/html] > > > > Saving to: `index.html.10' > > > > > [ <=> ] 3,376 --.-K/s in > > > > 0.003s > > > > > 2010-10-09 12:20:44 (1.18 MB/s) - `index.html.10' saved [3376] > > > > > If i try and navigate to any of the above IP Addresses i.ehttp:// > > > 64.233.169.141 > > > > I endup on google or godaddy, but not my app. > > > > > Any help would be greatly appriciated. I may have to resort to having > > > > users point their arduino to an internal web server that can forward > > > > the request, but having arduino devices post directly to app engine > > > > would be very cool. > > > > > -Ben > > > > -- > > > 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-ja
[appengine-java] Re: CPU Time Overload
Looks like you are creating a new Vote object for every vote on a poll if I am reading this right. I would suggest using a sharded counter for polls. http://code.google.com/appengine/articles/sharding_counters.html Jeff On Oct 11, 11:24 am, Ted Conn wrote: > Hi all, I am returning the results from a poll with a simple results > servlet that queries the database two times. For some reason, the > results servlet is causing drastic CPU usage and I can't figure out > why. Can someone look in here and see if there is something extremely > obvious that is causing CPU usage to go overboard? > > I attached the java file... > > ResultsServlet.java > 2KViewDownload -- 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: Cant compile javax.crypto
Anyone? It's ok to use javax.crypto in App Engine isn't it? -- 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] CPU Time Overload
Hi all, I am returning the results from a poll with a simple results servlet that queries the database two times. For some reason, the results servlet is causing drastic CPU usage and I can't figure out why. Can someone look in here and see if there is something extremely obvious that is causing CPU usage to go overboard? I attached the java file... -- 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. package net.creativelift.snappypoll; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import java.util.logging.Logger; import javax.jdo.PersistenceManager; import javax.jdo.Query; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ResultsServlet extends HttpServlet { private static final Logger log = Logger.getLogger(VoteServlet.class.getName()); private PersistenceManager pm; private String poll_id; public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { poll_id = req.getParameter("poll_id"); pm = PMF.get().getPersistenceManager(); List votes = getVotes(); resp.setContentType("text/xml"); PrintWriter out = resp.getWriter(); try { Poll poll = getPoll(); int[] countArray = groupedVotes(votes,poll.getAnswers().length); out.println(""); out.println(""); out.println("" + poll.getQuestion() + ""); out.println(""); int index = 0; for (String answer : poll.getAnswers()) { out.println(""); out.println(""); out.println(answer); out.println(""); out.println("" + countArray[index] + ""); out.println(""); index += 1; } out.println(""); out.println(""); } catch(IndexOutOfBoundsException e) { out.println(""); out.println(""); } pm.close(); } private Poll getPoll() throws IndexOutOfBoundsException { Query query = pm.newQuery(Poll.class); query.setFilter("poll_id == pollID"); query.declareParameters("String pollID"); List polls = (List) pm.newQuery(query).execute(poll_id); Poll poll = polls.get(0); return poll; } private List getVotes() { Query query = pm.newQuery(Vote.class); query.setFilter("poll_id == pollID"); query.declareParameters("String pollID"); List votes = (List) pm.newQuery(query).execute(poll_id); return votes; } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { /*String poll_id = req.getPathInfo().substring(1,req.getPathInfo().length()); RequestDispatcher newView = req.getRequestDispatcher( "/results.jsp?poll_id=" + poll_id ); try { newView.include( req, resp ); } catch(ServletException e) { System.out.println("oops"); }*/ resp.setContentType("text/xml"); PrintWriter out = resp.getWriter(); out.println(""); out.println(""); } private int[] groupedVotes(List votes,Integer answersAmount) { int[] countArray = new int[answersAmount]; for(Vote vote : votes) { countArray[vote.getAnswer()] += 1; } return countArray; } }
[appengine-java] Re: App Engine and IP Addresses
Guys - thank you. It's working great. I'm actually impressed at how I can us the IP i get from google.com or appspot.com and as long as I provide the host my POST get's directed to my app engine app. I will post more about this in my blog: http://nimbits.blogspot.com/ I now have an Arduino Microcontroller board with an Ethernet shield that can post it's data directly to my Nimbits Data Logging Service on App Engine : http://www.nimbits.com The Arduino C code is simply a basic web client (using ethernet.h) that does: client.println("GET /service/currentvalue? point=test&email=bsaut...@gmail.com&format=json HTTP/1.1"); client.println("Host:nimbits1.appspot.com"); client.println("Accept-Language:en-us,en;q=0.5"); client.println("Accept-Encoding:gzip,deflate"); client.println("Connection:close"); client.println("Cache-Control:max-age=0"); client.println(); Worth mentioning that I had trouble with http keep alives - i had to add a connection close header. Not sure why. On Oct 10, 5:36 pm, Maxim Veksler wrote: > Exactly. > > Usehttps://addons.mozilla.org/en-US/firefox/addon/6647/to see what headers > your browser send as part of the HTTP GET request and emulate them in C > code. > > Should work :). > > On Sat, Oct 9, 2010 at 11:45 PM, Peter Ondruska > wrote: > > > > > When connecting to IP address you need to use HTTP host header so that > > GAE knows which application/virtual server you want. > > > On Oct 9, 6:26 pm, Benjamin wrote: > > > I've been working on a challenge over the past couple of days and I > > > could really use a knowledge transfer on App Engine, Domains and IP > > > addresses. I seem to be missing something. > > > > I'm trying to write a library for Arduino Micro-controllers to do HTTP > > > Posts to a servlet hosted on appengine. For example The URL of the > > > servlet is > > > >http://nimbits1.appspot.com/service/currentvalue?point=test&format=json > > > > Do to limitations on the Arduino device, i need to get an IP Address > > > that will resolve to nimbits1.appspot.com first, before doing my post > > > to /service/currentvalue?point=test&format=json > > > > I have the C code to request an IP from DNS of a domain which works > > > without a problem. So far so good. My problem is my requests seem to > > > hit a brick wall when I try to use the IP instead of the Domain in my > > > requests. > > > > Let's say I ping nimbits1.appspot.com - I get 74.125.113.121 or > > > 72.14.204.141 back from the DNS Server. This takes me to Google > > > servers, but not my app. I'm guessing that the server want the > > > subdomain in the request but i'm not provided one. > > > > I registered a new domain: nimbits.org on godaddy and followed Nick > > > Johnson's fine tutorial on mapping naked domains to have nimbits.org > > > redirect to nimbits1.appspot.com (As a permanent redirect without > > > masking) > > > >http://blog.notdot.net/2009/12/Naked-domains-on-App-Engine > > > > if i navigate tohttp://nimbits.orgI redirect ok tohttp:// > > nimbits1.appspot.com > > > > Further, if i do a wget in a linux terminal I can see the IP's i'm > > > resolving to: > > > > benja...@ben-ubws01:~$ wget nimbits.org > > > --2010-10-09 12:20:43-- http://nimbits.org/ > > > Resolving nimbits.org... 64.202.189.170 > > > Connecting to nimbits.org|64.202.189.170|:80... connected. > > > HTTP request sent, awaiting response... 301 Moved Permanently > > > Location:http://nimbits1.appspot.com[following] > > > --2010-10-09 12:20:44-- http://nimbits1.appspot.com/ > > > Resolving nimbits1.appspot.com... 64.233.169.141 > > > Connecting to nimbits1.appspot.com|64.233.169.141|:80... connected. > > > HTTP request sent, awaiting response... 200 OK > > > Length: unspecified [text/html] > > > Saving to: `index.html.10' > > > > [ <=> ] 3,376 --.-K/s in > > > 0.003s > > > > 2010-10-09 12:20:44 (1.18 MB/s) - `index.html.10' saved [3376] > > > > If i try and navigate to any of the above IP Addresses i.ehttp:// > > 64.233.169.141 > > > I endup on google or godaddy, but not my app. > > > > Any help would be greatly appriciated. I may have to resort to having > > > users point their arduino to an internal web server that can forward > > > the request, but having arduino devices post directly to app engine > > > would be very cool. > > > > -Ben > > > -- > > 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 > 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 unsub
[appengine-java] Advice on Localization in Datastore
I would like to hear any thoughts on storing localized data in the datastore. I'm using the low-level api to access my data and currently using separate entity kinds (ie. somekind_en_US, somekind_fr_FR, etc). This may make it difficult to fall back on a value if the localized data has not been provided. 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] Advice on Localization in Datastore
I would like to hear any thoughts on storing localized data in the datastore. I'm using the low-level api to access my data and currently using separate entity kinds (ie. somekind_en_US, somekind_fr_FR, etc). This may make it difficult to fall back on a value if the localized data has not been provided. 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] Is MemcacheService obtained from getMemcacheService("namespace") thread safe?
Hi, Well the title pretty much says it all. Is the memcache low level interface of AppEngine Java SDK thread safe? I would like to hold a reference to it in a static class level reference field. Thanks, Maxim. -- 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: Problem with persist a child class
Have you seen datanucleus-appengine issue 28 (Cannot add child to existing one-to-many if parent has Long or unencoded String pk)? Might this issue relate to your problem? I encountered this in the past and had to change the data type of the child persistent entity primary key to work around this issue. On Oct 9, 7:59 pm, lisandrodc wrote: > Hi! I have a problem with persist a child class, using inheritance. > When I call the method "makePersistent", in the datastore, the object > doesn't save. > It does not throw any exception. > The code at makePersistent and the classes are: > > public void crearRegFechaUsuario(Usuario usu,RegFechaUsuario > rFechUsuario) { > > Transaction tx = pm.currentTransaction(); > try { > tx.begin(); > //rFechUsuario is the child class at persist > pm.makePersistent(rFechUsuario); > tx.commit(); > } finally { > pm.close(); > if (tx.isActive()) { > tx.rollback(); > } > } > > } > > @Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE) > public abstract class Fecha { > ... > > @PersistenceCapable(identityType = > IdentityType.APPLICATION,detachable="true") > //The class with problem at persist > public class RegFechaUsuario extends Fecha { > > @Persistent > ... -- 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: makeTransientAll not working
Whether i remove "pm.makeTransientAll((Collection)results);" or NOT, i am getting the following exception. Please note i am using struts v 2.0.14. Basically i am trying to show the results list that is returned from the above method in a jsp via struts-tags. I am getting error in the following line: Oct 11, 2010 10:54:37 AM com.opensymphony.xwork2.util.OgnlValueStack logLookupFailure WARNING: Caught an exception while evaluating expression 'results!= null && results.size > 0' against value stack java.lang.ClassCastException: org.datanucleus.store.appengine.query.StreamingQueryResult cannot be cast to java.util.Set at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:46) at com.opensymphony.xwork2.util.XWorkCollectionPropertyAccessor.getProperty(XWorkCollectionPropertyAccessor.java: 54) at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643) at ognl.ASTProperty.getValueBody(ASTProperty.java:92) at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) at ognl.SimpleNode.getValue(SimpleNode.java:210) at ognl.ASTChain.getValueBody(ASTChain.java:109) at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) at ognl.SimpleNode.getValue(SimpleNode.java:210) at ognl.ASTGreater.getValueBody(ASTGreater.java:49) at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) at ognl.SimpleNode.getValue(SimpleNode.java:210) at ognl.ASTAnd.getValueBody(ASTAnd.java:56) at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) at ognl.SimpleNode.getValue(SimpleNode.java:210) at ognl.Ognl.getValue(Ognl.java:333) at com.opensymphony.xwork2.util.OgnlUtil.getValue(OgnlUtil.java:194) at com.opensymphony.xwork2.util.OgnlValueStack.findValue(OgnlValueStack.java: 258) at org.apache.struts2.components.Component.findValue(Component.java: 322) at org.apache.struts2.components.If.start(If.java:85) at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java: 54) at org.apache.jsp.jsp.admin.party_jsp._jspx_meth_s_if_1(party_jsp.java: 497) at org.apache.jsp.jsp.admin.party_jsp._jspService(party_jsp.java:217) 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: 511) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 390) 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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java: 70) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java: 139) at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java: 178) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java: 348) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 253) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java: 221) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 86) at com.opensymphony.xwork2.DefaultActionInvocation $2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation $2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java: 455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 221) at com.opensympho
Re: [appengine-java] makeTransientAll not working
Remove the line "pm.makeTransientAll((Collection)results);" and it should work fine. And no need for the line "query.closeAll();) as well. On 11/10/10 12:14, "Puneet" wrote: >In the below method, the makeTransientAll method is not working. I am >not able to show the contents of returned List in jsp. > >@Override >public List getParty (String name) { > >List results = null; >PersistenceManager pm = PMF.get().getPersistenceManager(); > >Query query = pm.newQuery(Party.class); >query.setFilter("companyName.startsWith(nameParam)"); >query.declareParameters("String nameParam"); > >try { >results = (List) query.execute(name); >pm.makeTransientAll((Collection)results); >} finally { >query.closeAll(); >pm.close(); >} > >return results; >} > >If I copy the contents of results to a new ArrayList, then the app is >working fine. This means that the pm.makeTransientAll method is not >working. Please help as to where i may be doing wrong. > >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. > -- 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] makeTransientAll not working
In the below method, the makeTransientAll method is not working. I am not able to show the contents of returned List in jsp. @Override public List getParty (String name) { List results = null; PersistenceManager pm = PMF.get().getPersistenceManager(); Query query = pm.newQuery(Party.class); query.setFilter("companyName.startsWith(nameParam)"); query.declareParameters("String nameParam"); try { results = (List) query.execute(name); pm.makeTransientAll((Collection)results); } finally { query.closeAll(); pm.close(); } return results; } If I copy the contents of results to a new ArrayList, then the app is working fine. This means that the pm.makeTransientAll method is not working. Please help as to where i may be doing wrong. 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.
Re: [appengine-java] Re: API CRUD interface for application ?
Hi Didler, This is a bit off topic from the main discussion I was hoping to have on this thread but still: Objectify is an over kill *for our needs*. It's faster for us to simply wrap calls to low level DataStore in LowLevelDataStore.java calls we make (which return an Entity, List, Iterable and co.) in a Repository.java that transforms them into application POJO then use Objectify for this which we will need to register the classes and pass through the Objectify abstraction. Objectify, Twig itself are great libraries and we are using them in GUI apps that are running on the app engine. Maxim. On Mon, Oct 11, 2010 at 10:01 AM, Didier Durand wrote: > Hi Maxim, > > When you say Objectify is overkill,what do you mean ? Did you > benchmark it ? > > I switched ito it from JDO and I am pretty satisfied: slick and fast. > What is bad about it from your perspective ? > regards > didier > > On Oct 10, 11:28 pm, Maxim Veksler wrote: > > Hello, > > > > The application we run is a backend online service and has no GUI. > > We some how need to be able to upload new content / update existing > > datastore entity records. > > > > The database model is relatively simple: 1 to many relationships on all > of > > the kinds. > > > > I would be happy to use learn about a library / some API configuration > > option to expose an interface so that external code can do the CRUD > logic. > > Is there any support for this in GAE / other library that runs on GAE? > > > > If this plays any role in your suggestions: > > We're super focused on response times so: We currently use "low level" > data > > store API. > > I actually tried Objectify but found even it to be an over kill for our > > needs. > > I also deleted all the jars the were added by GAE eclipse plugin but are > not > > used by the code. > > > > Actually the list of jars used by the application consists of: > > > > ls war/WEB-INF/lib/ > > appengine-api-1.0-sdk-1.3.7.jar appengine-jsr107cache-1.3.7.jar > > jackson-core-asl-1.6.0.jarjsr107cache-1.1.jar > > appengine-api-labs-1.3.7.jar EyeViewUtils-1.0.1-SNAPSHOT.jar > > jackson-mapper-asl-1.6.0.jar log4j-1.2.16.jar > > > > Any recommendations / personal experience with this issue / pointers > about > > correct design of the interface / what technology to use and co. are > highly > > welcome and appreciated. > > > > Thank you, > > Maxim. > > -- > 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] Exception in struts resource bundle
Hi, I am using Struts 2.0.14 + Spring 2.5 in an appengine application. When i saw the logs, it was full of exceptions (pasted below.). Please note that the application is running fine upon deployment, don't know why these exceptions are being raised...they are in thousands of numbers. I guess it is being raised while getting text from resource-bundle from struts tags in jsp. eg: <%@ taglib prefix="s" uri="/struts-tags" %> My jsp page is full of these kind of tags (s:text). In the UI, they are resolving correctly but seems to be throwing exceptions for each of the tags the app-server encounters. In local, i dodnt see these exceptions, i am seeing them only upon deployment to app-server. com.opensymphony.xwork2.util.LocalizedTextUtil reloadBundles: Could not reload resource bundles java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on private static final java.util.concurrent.ConcurrentMap java.util.ResourceBundle.cacheList at com.google.appengine.runtime.Request.process-15519e8c5135e1be(Request.java) at java.lang.reflect.Field.setAccessible(Field.java:166) at com.opensymphony.xwork2.util.LocalizedTextUtil.clearMap(LocalizedTextUtil.java: 738) at com.opensymphony.xwork2.util.LocalizedTextUtil.reloadBundles(LocalizedTextUtil.java: 701) at com.opensymphony.xwork2.util.LocalizedTextUtil.findDefaultText(LocalizedTextUtil.java: 178) at com.opensymphony.xwork2.util.LocalizedTextUtil.getDefaultMessage(LocalizedTextUtil.java: 581) at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java: 463) at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java: 224) at com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java: 99) at org.apache.struts2.components.Text.end(Text.java:158) at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java: 43) at org.apache.jsp.jsp.admin.FRAGMENT_005fadminHeader_jsp._jspx_meth_s_text_0(FRAGMENT_005fadminHeader_jsp.java: 133) at org.apache.jsp.jsp.admin.FRAGMENT_005fadminHeader_jsp._jspService(FRAGMENT_005fadminHeader_jsp.java: 63) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 390) 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 org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java: 966) at org.apache.jsp.jsp.admin.login_jsp._jspService(login_jsp.java:63) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 390) 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 org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java: 139) at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java: 178) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java: 348) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 253) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java: 221) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 86) at com.opensymphony.xwork2.DefaultActionInvocation $2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation $2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java: 455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
[appengine-java] Re: API CRUD interface for application ?
Hi Maxim, When you say Objectify is overkill,what do you mean ? Did you benchmark it ? I switched ito it from JDO and I am pretty satisfied: slick and fast. What is bad about it from your perspective ? regards didier On Oct 10, 11:28 pm, Maxim Veksler wrote: > Hello, > > The application we run is a backend online service and has no GUI. > We some how need to be able to upload new content / update existing > datastore entity records. > > The database model is relatively simple: 1 to many relationships on all of > the kinds. > > I would be happy to use learn about a library / some API configuration > option to expose an interface so that external code can do the CRUD logic. > Is there any support for this in GAE / other library that runs on GAE? > > If this plays any role in your suggestions: > We're super focused on response times so: We currently use "low level" data > store API. > I actually tried Objectify but found even it to be an over kill for our > needs. > I also deleted all the jars the were added by GAE eclipse plugin but are not > used by the code. > > Actually the list of jars used by the application consists of: > > ls war/WEB-INF/lib/ > appengine-api-1.0-sdk-1.3.7.jar appengine-jsr107cache-1.3.7.jar > jackson-core-asl-1.6.0.jar jsr107cache-1.1.jar > appengine-api-labs-1.3.7.jar EyeViewUtils-1.0.1-SNAPSHOT.jar > jackson-mapper-asl-1.6.0.jar log4j-1.2.16.jar > > Any recommendations / personal experience with this issue / pointers about > correct design of the interface / what technology to use and co. are highly > welcome and appreciated. > > Thank you, > Maxim. -- 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] gae eclipse plugin statusbar
In eclipse, the gae plugin adds an area in the status bar that as far as i can tell is used solely for notification of updates to the gae plugin. I think it takes up valuable space for more important information and isn't really needed. An option to remove it would be great. Thanks. See: http://i.imgur.com/GDXUs.jpg -- 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.