2013-10-27 40 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

相关问题