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にたいおうしているということなのですかね。とりあえず以上。ちょっといろいろ試してみます。