gaeでローカル起動したらJDOUserException

やっと新機能を実装してローカル環境でgaeを起動したら↓のエラーが。。。

javax.jdo.JDOUserException: Persistent class "Class org.pupit.model.PupitThread does not seem to have been enhanced.  You may want to rerun the enhancer and check for errors in the output." has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class.
 at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:375)
 at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:252)
 at org.pupit.model.PupitThreadDao.selectByLastUpdateTime(PupitThreadDao.java:37)
 at org.pupit.service.thread.GetPupitThreadListServiceImpl.execute(GetPupitThreadListServiceImpl.java:13)
 at org.pupit.servlet.thread.IndexServlet.getThreadList(IndexServlet.java:54)
 at org.pupit.servlet.thread.IndexServlet.doGet(IndexServlet.java:25)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 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 com.google.apphosting.runtime.jetty.ResourceFileServlet.serveWelcomeFileAsForward(ResourceFileServlet.java:342)
 at com.google.apphosting.runtime.jetty.ResourceFileServlet.maybeServeWelcomeFile(ResourceFileServlet.java:281)
 at com.google.apphosting.runtime.jetty.ResourceFileServlet.doGet(ResourceFileServlet.java:142)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
 at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:67)
 at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
 at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
 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.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:249)
 at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
 at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:422)
 at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449)
 at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455)
 at com.google.tracing.TraceContext.runInContext(TraceContext.java:695)
 at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333)
 at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325)
 at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453)
 at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
 at java.lang.Thread.run(Thread.java:679)
NestedThrowablesStackTrace:
Persistent class "Class org.pupit.model.PupitThread does not seem to have been enhanced.  You may want to rerun the enhancer and check for errors in the output." has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class.
org.datanucleus.store.exceptions.NoTableManagedException: Persistent class "Class org.pupit.model.PupitThread does not seem to have been enhanced.  You may want to rerun the enhancer and check for errors in the output." has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class.
 at org.datanucleus.store.appengine.DatastoreManager.getDatastoreClass(DatastoreManager.java:722)
 at org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(DatastoreQuery.java:216)
 at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute(JDOQLQuery.java:89)
 at org.datanucleus.store.query.Query.executeQuery(Query.java:1489)
 at org.datanucleus.store.query.Query.executeWithArray(Query.java:1371)
 at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:243)
 at org.pupit.model.PupitThreadDao.selectByLastUpdateTime(PupitThreadDao.java:37)
 at org.pupit.service.thread.GetPupitThreadListServiceImpl.execute(GetPupitThreadListServiceImpl.java:13)
 at org.pupit.servlet.thread.IndexServlet.getThreadList(IndexServlet.java:54)
 at org.pupit.servlet.thread.IndexServlet.doGet(IndexServlet.java:25)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 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 com.google.apphosting.runtime.jetty.ResourceFileServlet.serveWelcomeFileAsForward(ResourceFileServlet.java:342)
 at com.google.apphosting.runtime.jetty.ResourceFileServlet.maybeServeWelcomeFile(ResourceFileServlet.java:281)
 at com.google.apphosting.runtime.jetty.ResourceFileServlet.doGet(ResourceFileServlet.java:142)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
 at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:67)
 at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
 at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)

調べてみたところeclipseでプロジェクトをクリーンすればいいとのことだったので、クリーンしたのですが、、↓のエラーがでてプロジェクトのクリーンにも失敗してましたorz...

Encountered a problem: Unexpected exception
Please see the logs [C:\Users\xxx\AppData\Local\Temp\enhance45590413067311643.log] for further information.

↓ファイルの内容↓

java.lang.RuntimeException: Unexpected exception
 at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:59)
 at com.google.appengine.tools.enhancer.Enhance.(Enhance.java:60)
 at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
Caused by: java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:601)
 at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:57)
 ... 2 more
Caused by: org.datanucleus.exceptions.NucleusException: Plugin (Bundle) "org.datanucleus.store.appengine" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/C:/eclipse_web/plugins/com.google.appengine.eclipse.sdkbundle.1.4.0_1.4.0.v201012021502/appengine-java-sdk-1.4.0/lib/user/orm/datanucleus-appengine-1.0.8.final.jar" is already registered, and you are trying to register an identical plugin located at URL "file:/C:/eclipse_web/workspace/pu-pit/war/WEB-INF/lib/datanucleus-appengine-1.0.8.final.jar."
 at org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:434)
 at org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:340)
 at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensions(NonManagedPluginRegistry.java:222)
 at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensionPoints(NonManagedPluginRegistry.java:153)
 at org.datanucleus.plugin.PluginManager.registerExtensionPoints(PluginManager.java:82)
 at org.datanucleus.OMFContext.(OMFContext.java:160)
 at org.datanucleus.enhancer.DataNucleusEnhancer.(DataNucleusEnhancer.java:172)
 at org.datanucleus.enhancer.DataNucleusEnhancer.(DataNucleusEnhancer.java:150)
 at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1157)
 ... 7 more


これは、 WEB-INF/lib 以下から
datanucleus-appengine-1.0.8.final.jar
を削除して、プロジェクト>クリーン したらクリーンでました!

で、gaeをローカルで起動したところ
datanucleus-appengine-1.0.8.final.jar
がないので、起動できないと起こられたので、
datanucleus-appengine-1.0.8.final.jar
を元の場所(WEB-INF/lib以下)に戻して起動しました!!!!

<<追記>>
このJDOUserExceptionが出る状態でサーバにアップロードするとサーバ側でも同様のエラーが出るので、注意しましょう!

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

0 Response to "gaeでローカル起動したらJDOUserException"

コメントを投稿