2010-04-24 3 views
2

Google App Engine 웹 애플리케이션에 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

안녕하세요, 실제로는 Google 앱 엔진에 문제가 아니지만 리소스에 액세스하려는 방식입니다. webContent 디렉토리의 파일에 직접 액세스하려고했습니다. getResourceAsStream을 사용했고 지금은 작동 중입니다. 고맙습니다. – thisisananth