您好,在我的上一个项目中,我使用lucene分析器在appengine上生成关键字。现在,我想在我的新项目中再次使用它,但似乎它受到GAE的限制。我试图将版本设置回我在上一个项目中使用的版本,但是它不再起作用。我收到以下错误:
java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google App Engine developer's guide for more details.
[INFO] at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
[INFO] at org.apache.lucene.util.RamUsageEstimator.<clinit>(RamUsageEstimator.java:223)
[INFO] at org.apache.lucene.util.ArrayUtil.<clinit>(ArrayUtil.java:32)
[INFO] at java.lang.Class.forName0(Native Method)
[INFO] at java.lang.Class.forName(Class.java:190)
[INFO] at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
[INFO] at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
[INFO] at org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl.<init>(CharTermAttributeImpl.java:33)
[INFO] at org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImpl.<init>(PackedTokenAttributeImpl.java:40)
[INFO] at org.apache.lucene.util.AttributeFactory$1.createInstance(AttributeFactory.java:140)
[INFO] at org.apache.lucene.util.AttributeFactory$StaticImplementationAttributeFactory.createAttributeInstance(AttributeFactory.java:103)
[INFO] at org.apache.lucene.util.AttributeSource.addAttribute(AttributeSource.java:222)
[INFO] at org.apache.lucene.analysis.standard.StandardTokenizer.<init>(StandardTokenizer.java:182)
[INFO] at org.apache.lucene.analysis.de.GermanAnalyzer.createComponents(GermanAnalyzer.java:194)
[INFO] at org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:144)
有人知道我为什么会收到此错误吗?
之所以会出现此错误,是因为LuceneRamUsageEstimator
尝试访问ManagementFactory
该类以确定VM的对象对齐方式。java.lang.management.ManagementFactory
受GAE限制(可能出于安全原因),并且NoClassDefFoundError
引发了a 。
如果查看LuceneAppEngine和LuGAEne(提供目录实现的项目,这些目录实现可让您在Google App Engine上使用Lucene),您会发现它们提供了替代方法RamUsageEstimator
,它们捕获了该异常:
我想,如果您想在GAE上使用lucene-analyzer,您应该考虑使用这些“ lucene-GAE”项目之一。
我不知道为什么它在您以前的项目中对您有用。也许您使用了其中一个Lucene-GAE项目,却忘记了将其包含在新项目中?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句