2013-10-27 50 views
1

我重新部署我的應用程序(谷歌appengine),它似乎工作好,但是當我嘗試解析XML時,我得到: java.security.AccessControlException:access denied(「java.lang.RuntimePermission」「accessClassInPackage.com.sun.org.apache.xerces.internal.parsers」)appengine錯誤 - java.security.AccessControlException:訪問被拒絕(「java.lang.RuntimePermission」「accessClassInPackage.com.sun.org.apache.xerces

這是什麼意思?我怎麼能解決呢?

在以前版本的應用程序,我沒有得到這個錯誤的。

運行時本地的應用程序,我不會得到這個錯誤。

我做了細微的變化 - 我通過一些數據從UI到數據存儲

下面是解析XML代碼:

public static <T extends BaseDataObject> T xml2Bean(Class<T> clazz, 
     String xmlData) throws UnsupportedEncodingException, JAXBException { 
    Reader reader = new StringReader(xmlData); 
    JAXBContext context = getContext(clazz); 
    Unmarshaller um = context.createUnmarshaller(); 
    return (T) um.unmarshal(reader); 
} 

我的猜測是谷歌用來支持com.sun.org.apache.xerces.internal.parsers但現在他們沒有,我的舊代碼仍然工作,因爲它仍然支持時,它被推...

我怎麼能驗證這個猜測?即我可以在哪裏找到不受支持的軟件包列表?

我在考慮丟棄XML代碼並使用json代替,我如何確保json支持?

回答

0

代碼中的某些內容或代碼的依賴關係,試圖引用GAE上不允許的程序包com.sun.org.apache.xerces.internal.parsers。只是一個猜測:也許一個依賴項已經升級,並且這個依賴項試圖訪問該包。

+0

10X :)羅賓寫道:「......這是不允許在GAE」,我在哪裏可以找到的是什麼/ ISN」名單t支持GAE?是json支持? –

+0

我檢查了https://developers.google.com/appengine/docs/java/jrewhitelist,支持javax.xml.bind.JAXBContext ... –

2

問題解決了:我已經下載了xerces並將jar添加到war \ WEB-INF \ lib中,並添加到eclipse中的構建路徑中。

我也升級到最新的JDK(java 7)。

我不知道它的解決了這個問題的......

+0

添加了爲我修復的jar。我已經在使用JDK7了 – awmross

相關問題