2010-04-24 72 views
2

我在Google App Engine Web應用程序中編寫了一個SAX解析器。因爲我嘗試使用xsd來驗證我的xml文件。但是當我的代碼訪問該xsd時,我正在獲取訪問控制異常。使用SAX解析器對XSD進行驗證時發生java.security.AccessControlException

java.security.AccessControlException: access denied (java.io.FilePermission \WEB-INF\ApplicationResponse.xsd read) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264) at java.security.AccessController.checkPermission(AccessController.java:427) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166) at java.lang.SecurityManager.checkRead(SecurityManager.java:871) at java.io.FileInputStream.(FileInputStream.java:100) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.xsdToXMLInputSource(XMLSchemaLoader.java:830) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.processJAXPSchemaSource(XMLSchemaLoader.java:708) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:554) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:2459) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1807) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:330) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:779) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1794) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) at sax.SAXLocalNameCount.parse(SAXLocalNameCount.java:220) at com.sms2mint.InterfaceServlet.doGet(InterfaceServlet.java:54)

請讓我知道如何調試呢? 我試圖將xsd放在類,webcontent,/ WEB-INF中,但沒有幫助。也將其作爲appengine-web.xml中的資源文件聲明,但無濟於事。

回答

1

據:

http://code.google.com/appengine/docs/java/jrewhitelist.html

FileInputStream中應列入白名單讀卡器功能。你是否在開發環境中遇到了這種訪問問題(在這種情況下,你的開發環境是什麼?在重新開始eclipse,清理和重新構建項目後,有人使用Eclipse插件解決了類似問題的報告),或者在部署的應用程序中?

你如何指定文件的路徑?你可以包含代碼嗎?

+0

嗨波什,其實這不是一個谷歌應用程序引擎的問題,但我試圖訪問資源的方式。我試圖直接訪問webContent目錄中的文件。我使用getResourceAsStream,它現在正在工作。謝謝。 – thisisananth 2010-04-25 01:39:04