This page (revision-25) was last changed on 23-Apr-2022 17:05 by Harry Metske

This page was created on 23-Apr-2022 17:05 by Harry Metske

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
25 23-Apr-2022 17:05 5 KB Harry Metske to previous
24 23-Apr-2022 17:05 5 KB Harry Metske to previous | to last
23 23-Apr-2022 17:05 5 KB Harry Metske to previous | to last
22 23-Apr-2022 17:05 5 KB Harry Metske to previous | to last
21 23-Apr-2022 17:05 4 KB Harry Metske to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 12 removed 2 lines
* [JDOQL-QuickRef.pdf]
! JDO Resources
At line 15 removed 4 lines
|[Apache DB Home|http://db.apache.org/jdo/]|[Datanucleus Home|http://www.datanucleus.org/]| [Java API|http://db.apache.org/jdo/api23/apidocs/index.html] |[Comparing JDO/JPA|http://db.apache.org/jdo/jdo_v_jpa.html]
!! Intro
At line 77 changed one line
!! Things noticed / experiences
!! Things noticed
At line 81 changed 29 lines
* HttpSessions should be enabled in appengine-web.xml, The implementation uses the App Engine datastore and memcache to store session data.
* make sure that all objects in the session are Serializable (test environment accepts it, but GAE not)
* changing names of classes/packages of objects that were in the session earlier will cause problems:
%%small {{{
Caused by: java.lang.ClassNotFoundException: nl.computerhok.gae.test1.dao.Peuter
at com.google.appengine.runtime.Request.process-e0ffd4c85af8f259(Request.java)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.HashMap.readObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at com.google.apphosting.runtime.jetty.SessionManager.deserialize(SessionManager.java:385)
... 35 more
}}} %%
You only get into the application using the version identifier in the URL, like [http://3.latest.computerhok01.appspot.com/]
HttpSessions should be enabled in appengine-web.xml, The implementation uses the App Engine datastore and memcache to store session data.
At line 113 removed 30 lines
! (no) log4j
If you start using log4j in your webapp (and you added a log4j.jar to war/WEB-INF/lib and to your project's build path), JDO enhance ant task fails with a NoClassDefFoundError. Few hits on Google on that, finally removed log4j all together and switched to Java util logging.
! Datastore
* The datastore does not support the SQL language, you can only use JDOQL, for example, this is not supported :
%%prettify
{{{
Query query = getPersistenceManager().newQuery(Query.SQL, queryString);
}}}
%%
__Only one property per query may have inequality filters (<=, >=, <, >)..__
So you cannot do something like :
{{{
SELECT * FROM Peuter where geslacht>'M' AND achternaam>'b'
}}}
Case insensitive queries ?
What happens if you first create some entities, and then you add additional persistent fields ("columns") to the class ?\\
Well, that's nice, that simply works, tested by adding an adres field :-)
!