部署struts2項目到 google app engine (age)中遇到的一個問題

最近在將自己的java web項目(基於ssh)部署到google的 paas(google app engine )上去是遇到了一個很奇怪的錯誤,這裏將它記錄下來


錯誤的詳細信息如下:

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)

從錯誤的字面意思上看是 gae不能獲取 
freemarker.log.Log4JLoggerFactory
這個類,乍一看以爲是lib的version不一樣於是換了各種 age sdk 和struts2的版本, 但是不管換用那種版本在測試的時候都會提示這個錯誤,最終無奈之下 到freemarker項目的官網上查了一下, 一打開它的官網(http://freemarker.org/)問題就引刃而解



看到了吧, 原因是freemarker mormal版本不支持 gae 下載了它的gae版本 然後build到我的項目之中去後, 成功部署!!!!!!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章