Slim3itアプリケーションを試してみたんだが

http://slim3.googlecode.com/svn
まずはここからslim3itアプリケーションをダウンロードして、JDO周りを見てみたかったのでBlogパッケージあたりがJDOを使っているようだったので、動かしてみたが、エラーでた!


んでまずチェックアウトしたプロジェクトからslim3it\war\WEB-INF\appengine-generated\local_db.binを削除して新たなlocal_db.binが作られるようにしたら1個エラーが消えた。


そんで、次がこれだ

2009/07/27 7:03:28 org.slim3.controller.Controller runBare
警告: com.google.apphosting.api.ApiProxy$Environment.getAttributes()Ljava/util/Map;
java.lang.NoSuchMethodError: com.google.apphosting.api.ApiProxy$Environment.getAttributes()Ljava/util/Map;
	at com.google.appengine.api.NamespaceManager.get(NamespaceManager.java:71)
	at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:81)
	at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:73)
	at com.google.appengine.api.datastore.Key.(Key.java:100)
	at com.google.appengine.api.datastore.Key.(Key.java:85)
	at com.google.appengine.api.datastore.Key.(Key.java:81)
	at com.google.appengine.api.datastore.Entity.(Entity.java:103)
	at com.google.appengine.api.datastore.Entity.(Entity.java:84)
	at org.datanucleus.store.appengine.DatastoreFieldManager.(DatastoreFieldManager.java:167)
	at org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject(DatastorePersistenceHandler.java:178)
	at org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManagerImpl.java:3185)
	at org.datanucleus.state.JDOStateManagerImpl.flush(JDOStateManagerImpl.java:4513)
	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:2814)
	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:2754)
	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:2893)
	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:369)
	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:256)
	at org.datanucleus.jdo.JDOTransaction.commit(JDOTransaction.java:83)
	at org.slim3.jdo.GenericDao.commit(GenericDao.java:211)
	at org.slim3.jdo.GenericDao.makePersistentInTx(GenericDao.java:164)
	at slim3.it.controller.blog.InsertController.run(InsertController.java:22)
	at org.slim3.controller.Controller.runBare(Controller.java:94)
	at org.slim3.controller.FrontController.processController(FrontController.java:459)
	at org.slim3.controller.FrontController.doFilterInternal(FrontController.java:281)
	at org.slim3.controller.FrontController.doFilter(FrontController.java:246)
	at org.slim3.controller.FrontController.doFilter(FrontController.java:213)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at org.slim3.controller.HotReloadingFilter.doFilter(HotReloadingFilter.java:172)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at org.slim3.jdo.JDOFilter.doFilter(JDOFilter.java:61)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
	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:306)
	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 org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
2009-07-27 07:03:48.282::WARN:  Error for /blog/insert
java.lang.NoSuchMethodError: com.google.apphosting.api.ApiProxy$Environment.getAttributes()Ljava/util/Map;
	at com.google.appengine.api.NamespaceManager.get(NamespaceManager.java:71)
	at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:81)
	at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:73)
	at com.google.appengine.api.datastore.Key.(Key.java:100)
	at com.google.appengine.api.datastore.Key.(Key.java:85)
	at com.google.appengine.api.datastore.Key.(Key.java:81)
	at com.google.appengine.api.datastore.Entity.(Entity.java:103)
	at com.google.appengine.api.datastore.Entity.(Entity.java:84)
	at org.datanucleus.store.appengine.DatastoreFieldManager.(DatastoreFieldManager.java:167)
	at org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject(DatastorePersistenceHandler.java:178)
	at org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManagerImpl.java:3185)
	at org.datanucleus.state.JDOStateManagerImpl.flush(JDOStateManagerImpl.java:4513)
	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:2814)
	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:2754)
	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:2893)
	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:369)
	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:256)
	at org.datanucleus.jdo.JDOTransaction.commit(JDOTransaction.java:83)
	at org.slim3.jdo.GenericDao.commit(GenericDao.java:211)
	at org.slim3.jdo.GenericDao.makePersistentInTx(GenericDao.java:164)
	at slim3.it.controller.blog.InsertController.run(InsertController.java:22)
	at org.slim3.controller.Controller.runBare(Controller.java:94)
	at org.slim3.controller.FrontController.processController(FrontController.java:459)
	at org.slim3.controller.FrontController.doFilterInternal(FrontController.java:281)
	at org.slim3.controller.FrontController.doFilter(FrontController.java:246)
	at org.slim3.controller.FrontController.doFilter(FrontController.java:213)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at org.slim3.controller.HotReloadingFilter.doFilter(HotReloadingFilter.java:172)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at org.slim3.jdo.JDOFilter.doFilter(JDOFilter.java:61)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
	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:306)
	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 org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

NoSuchMethodError?

こんな情報がありましたので、

public void setDefaultNamespace(String s)が無くなって、Map getAttributes()ってのが増えてる。

情報に感謝! 1.2.2にアップグレードしてみると、ちゃんと動いてくれました。slim3itが1.2.2にたいおうしているということなのですかね。とりあえず以上。ちょっといろいろ試してみます。