2009年10月29日木曜日

Google App Engine の datastore でシリアライズエラー

やり方の問題なのだろうか?
datastore にアクセスした時にJPA、JDOに限らず
java.lang.RuntimeException: java.io.NotSerializableException: org.datanucleus.store.appengine.query.DatastoreQuery$1
とのエラーが出る。
Eclipseのデバッグ環境では、問題ないのに…
Googleのサーバではうまくいかない。
Wicketを使っているのだけれどそれが原因?
よくわからないけど抽出結果をそのまま使うとダメなようだ。
Arrayオブジェクトなどに入れ直すとエラーは出なくなった。



List<Employee> src
    = em.createQuery("SELECT e FROM Employee").getResultList();
// 抽出結果をArrayオブジェクトに入れ直しをする。
List<Employee> emps = new ArrayList<Employee>(src);
add(new ListView("listviewtable", emps)
{
    protected void populateItem(ListItem item)
    {
       Employee emply = (Employee) item.getModelObject();
       item.add(new Label("firstName", emply.getFirstName()));
       item.add(new Label("lastName", emply.getLastName()));
    }
});

参考
http://groups.google.co.jp/group/slim3-user-japan/msg/71a5dbf7c7c301fc

2009年10月28日水曜日

はじめに

プログラミングとLinuxについて特に目的もなく書き記していこうと思います。