2010-04-24 5 views
2

J'ai écrit un analyseur SAX dans mon application Web Google App Engine. en ce que j'essaie de valider mon fichier xml avec un xsd. Mais je reçois une exception de contrôle d'accès lorsque mon code est en train d'essayer d'accéder à ce fichier xsd.java.security.AccessControlException sur la validation XSD avec SAX Parser

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)

S'il vous plaît laissez-moi savoir comment déboguer cela? J'ai essayé de placer le xsd dans les classes, webcontent,/WEB-INF mais n'a pas aidé. Également déclaré cela comme un fichier de ressources dans appengine-web.xml également mais sans succès.

Répondre

1

Selon:

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

FileInputStream doit être une fonction de lecteur la liste blanche. Avez-vous ce problème d'accès dans l'environnement de développement (dans quel cas votre environnement de développement?) Des problèmes similaires ont été signalés avec des personnes utilisant le plugin Eclipse résolu après le redémarrage d'Eclipse, le nettoyage et la reconstruction du projet. dans une application déployée?

Comment spécifiez-vous le chemin d'accès à votre fichier? Pouvez-vous inclure du code?

+0

Salut Bosh, en fait ce n'est pas un problème avec google app engine mais la façon dont j'essayais d'accéder à une ressource. J'essayais d'accéder directement à un fichier dans le répertoire webContent. J'ai utilisé getResourceAsStream et ça marche maintenant. Je vous remercie. – thisisananth