我在 GAE 上运行 drools 5.5.0 的修改版本。我使用了red piranha 项目中的说明并将它们应用到 5.5.0 版本而不是 5.1.1 版本。只要我在本地运行 GAE,我就可以毫无问题地使用 drools。但是,一旦部署了我的应用程序,每次我想运行规则时都会收到AccessControlException 。
Error processing rules: {0}
java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader)
at com.google.appengine.runtime.Request.process-cb8c197a61b3cb9b(Request.java)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355)
at java.security.AccessController.checkPermission(AccessController.java:567)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.ClassLoader.getParent(ClassLoader.java:1224)
at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:581)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:174)
at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:613)
at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:254)
at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:237)
at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:88)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.drools.rule.JavaDialectRuntimeData.wire(JavaDialectRuntimeData.java:433)
at org.drools.rule.JavaDialectRuntimeData.reload(JavaDialectRuntimeData.java:481)
at org.drools.rule.JavaDialectRuntimeData.onBeforeExecute(JavaDialectRuntimeData.java:251)
at org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:138)
at org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:328)
at org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:225)
at org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:116)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1857)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1816)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1394)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:395)
at AbstractRuleLoader.loadKnowledgeBase(AbstractRuleLoader.java:159)
at AbstractRuleLoader.loadRules(AbstractRuleLoader.java:40)
at RuleRunner.runStatelessRules(RuleRunner.java:48)
有人在 GAE 上成功运行此版本的 drools 吗?谢谢!