我有一个配置了 Objectify 5.1.13 的 Java App Engine Maven 项目
<dependency>
<groupId>com.googlecode.objectify</groupId>
<artifactId>objectify</artifactId>
<version>5.1.13</version>
</dependency>
使用相关过滤器
<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在注册类期间(由 ServletContextListener
在开发服务器启动期间创建),我收到堆栈溢出错误
ObjectifyService.factory().register(classToRegister);
这是开发服务器启动期间显示的错误
lug 13, 2016 10:36:57 AM com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties
INFORMAZIONI: Overwriting system property key 'java.util.logging.config.file', value 'C:\Users\Nicola\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.38\appengine-java-sdk\appengine-java-sdk-1.9.38\config\sdk\logging.properties' with value 'WEB-INF/logging.properties' from 'C:\Users\Nicola\workspace_neon\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\Autogrill_GPE\WEB-INF\appengine-web.xml'
lug 13, 2016 10:36:58 AM com.google.apphosting.utils.jetty.JettyLogger info
INFORMAZIONI: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
lug 13, 2016 10:37:04 AM com.google.apphosting.utils.jetty.JettyLogger info
INFORMAZIONI: jetty-6.1.x
lug 13, 2016 10:37:52 AM com.google.apphosting.utils.jetty.JettyLogger warn
AVVERTENZA: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@747d97da{/,C:\Users\Nicola\workspace_neon\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\Autogrill_GPE}: java.lang.StackOverflowError
lug 13, 2016 10:37:52 AM com.google.apphosting.utils.jetty.JettyLogger warn
AVVERTENZA: failed JettyContainerService$ApiProxyHandler@12559336: java.lang.StackOverflowError
lug 13, 2016 10:37:52 AM com.google.apphosting.utils.jetty.JettyLogger warn
AVVERTENZA: Error starting handlers
java.lang.StackOverflowError
at java.lang.String.hashCode(String.java:1446)
at java.util.HashMap.hash(HashMap.java:362)
at java.util.HashMap.getEntry(HashMap.java:462)
at java.util.HashMap.get(HashMap.java:417)
at java.util.Collections$SynchronizedMap.get(Collections.java:2037)
at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.getAppEngineInternalAnnotation(RuntimeHelper.java:101)
at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:71)
at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:65)
at com.googlecode.objectify.impl.AbstractProperty.getAnnotation(AbstractProperty.java:58)
at com.googlecode.objectify.impl.AbstractProperty.<init>(AbstractProperty.java:28)
at com.googlecode.objectify.impl.FieldProperty.<init>(FieldProperty.java:36)
at com.googlecode.objectify.impl.translate.ClassPopulator.getDeclaredProperties(ClassPopulator.java:209)
at com.googlecode.objectify.impl.translate.ClassPopulator.<init>(ClassPopulator.java:84)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.createEmbeddedClassTranslator(ClassTranslatorFactory.java:75)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:50)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:36)
at com.googlecode.objectify.impl.translate.Translators.create(Translators.java:138)
at com.googlecode.objectify.impl.translate.Translators.get(Translators.java:117)
at com.googlecode.objectify.impl.translate.CreateContext.getTranslator(CreateContext.java:27)
at com.googlecode.objectify.impl.translate.ClassPopulator.<init>(ClassPopulator.java:88)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.createEmbeddedClassTranslator(ClassTranslatorFactory.java:75)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:50)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:36)
at com.googlecode.objectify.impl.translate.Translators.create(Translators.java:138)
at com.googlecode.objectify.impl.translate.Translators.get(Translators.java:117)
at com.googlecode.objectify.impl.translate.CreateContext.getTranslator(CreateContext.java:27)
.... more stacktrace same as above ....
at com.googlecode.objectify.impl.translate.ClassPopulator.<init>(ClassPopulator.java:88)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.createEmbeddedClassTranslator(ClassTranslatorFactory.java:75)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:50)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:36)
at com.googlecode.objectify.impl.translate.Translators.create(Translators.java:138)
at com.googlecode.objectify.impl.translate.Translators.get(Translators.java:117)
at com.googlecode.objectify.impl.translate.CreateContext.getTranslator(CreateContext.java:27)
at com.googlecode.objectify.impl.translate.ClassPopulator.<init>(ClassPopulator.java:88)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.createEmbeddedClassTranslator(ClassTranslatorFactory.java:75)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:50)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:36)
at com.googlecode.objectify.impl.translate.Translators.create(Translators.java:138)
at com.googlecode.objectify.impl.translate.Translators.get(Translators.java:117)
at com.googlecode.objectify.impl.translate.CreateContext.getTranslator(CreateContext.java:27)
at com.googlecode.objectify.impl.translate.ClassPopulator.<init>(ClassPopulator.java:88)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.createEmbeddedClassTranslator(ClassTranslatorFactory.java:75)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:50)
at com.googlecode.objectify.impl.translate.ClassTranslatorFactory.create(ClassTranslatorFactory.java:36)
lug 13, 2016 10:37:52 AM com.google.apphosting.utils.jetty.JettyLogger info
INFORMAZIONI: Started SelectChannelConnector@127.0.0.1:8888
lug 13, 2016 10:37:52 AM com.google.appengine.tools.development.JettyContainerService startHotDeployScanner
INFORMAZIONI: Full scan of the web app in place every 5s.
lug 13, 2016 10:37:54 AM com.google.appengine.tools.development.AbstractModule startup
INFORMAZIONI: Module instance default is running at http://localhost:8888/
lug 13, 2016 10:37:54 AM com.google.appengine.tools.development.AbstractModule startup
INFORMAZIONI: The admin console is running at http://localhost:8888/_ah/admin
lug 13, 2016 10:37:54 AM com.google.appengine.tools.development.DevAppServerImpl doStart
INFORMAZIONI: Dev App Server is now running
抱歉,我不得不缩短堆栈跟踪,但因此不接受超过 30k 个字符的文本
最佳答案
问题已经解决了
我有一个 Throwable
变量,Objectify 似乎无法很好地管理它。
如果它是非托管类型,我会抛出一个错误,stackoverflow 问题表明出现了意外情况。
我必须添加@Serialize
才能使其正常工作,现在一切正常。
关于java - Objectify - 注册类期间出现 StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38346851/