Java 使用Google App Engine初始化Freemarker时出现IllegaAccess错误

Java 使用Google App Engine初始化Freemarker时出现IllegaAccess错误,java,google-app-engine,freemarker,Java,Google App Engine,Freemarker,我正在尝试将Freemarker 2.3与GAE 1.7.1结合使用(我还使用1.8.1.1进行了一些测试),但在Freemarker初始化时出现了一个非常奇怪的错误: java.lang.IllegalAccessError: Class com.google.appengine.tools.development.agent.runtime.Runtime can not access a member of class freemarker.log.Log4JLoggerFac

我正在尝试将Freemarker 2.3与GAE 1.7.1结合使用(我还使用1.8.1.1进行了一些测试),但在Freemarker初始化时出现了一个非常奇怪的错误:

java.lang.IllegalAccessError: Class
   com.google.appengine.tools.development.agent.runtime.Runtime can not access
   a member of class freemarker.log.Log4JLoggerFactory with modifiers ""
at freemarker.log.Logger.createFactory(Logger.java:335)
at freemarker.log.Logger.createFactory(Logger.java:304)
at freemarker.log.Logger.selectLoggerLibrary(Logger.java:163)
at freemarker.log.Logger.getLogger(Logger.java:266)
at freemarker.template.utility.SecurityUtilities.<clinit>(SecurityUtilities.java:67)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:69)
at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
at freemarker.ext.beans.BeansWrapper.<clinit>(BeansWrapper.java:147)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:69)
at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
at freemarker.template.ObjectWrapper.<clinit>(ObjectWrapper.java:69)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:69)
at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
at freemarker.core.Configurable.<init>(Configurable.java:139)
at freemarker.template.Configuration.<init>(Configuration.java:142)
at freemarker.template.Configuration.<clinit>(Configuration.java:127)
我尝试使用logger.selectLoggerLibrary调用更改底层记录器,但我有类似的


非常感谢您的帮助。

使用
Logger尝试选择
LIBRARY\u SLF4J
LIBRARY\u COMMONS
。选择loggerlibrary
。问题解决了吗


更新:我明白为什么它会在GAE上为Log4J这样做。将在2.3.20-gae中修复。

是的,在类路径中添加slf4j jar并使用库\u slf4j修复了我的问题!非常感谢,达尼尔!您可以指定Freemarker的确切版本吗?(对不起,我不能对问题发表评论)你好,没问题!我正在为GAE使用版本2.3.19。。。谢谢你的帮助!您是否使用GAE兼容的二进制文件?是的,我正在使用freemarker-gae-2.3.19.jar文件。。。
Configuration configuration = new Configuration();