Applet:XML 找不到 DTD
我正在编写一个小程序,它使用 DTD 文件来检查它接收到的 XML 的内容。
我遇到了 DTD 未使用小程序查看器放置在正确文件夹中的问题,但现在我正在服务器上测试它,我再次遇到相同的错误。
java.security.AccessControlException:
access denied (java.io.FilePermission/leveldtd.dtd read)
当小程序位于服务器上时,如何解决此问题?
public static void parseThis(InputSource is) throws Exception{
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLHandlerLevel myExampleHandler = new XMLHandlerLevel();
XMLReader xr = sp.getXMLReader();
xr.setContentHandler(myExampleHandler);
/* Begin parsing */
xr.parse(is);
}
XML 解析器的创建。
I'm writing a applet that uses a DTD file to check the content of the XML it receives.
I had the problem of the DTD not placed in the right folder with the applet viewer, but now that I'm testing this on the server I get the same error again.
java.security.AccessControlException:
access denied (java.io.FilePermission/leveldtd.dtd read)
How can I fix this when the applet is on the server?
public static void parseThis(InputSource is) throws Exception{
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLHandlerLevel myExampleHandler = new XMLHandlerLevel();
XMLReader xr = sp.getXMLReader();
xr.setContentHandler(myExampleHandler);
/* Begin parsing */
xr.parse(is);
}
XML parser creation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
小程序要从服务器获取资源,必须使用 URL。文件对象将不起作用,因为:
File
对象将指向用户计算机上的某个位置。File
对象。因此,输出中会出现AccessControlException
。可以使用
URL(baseURL, pathString)
构造函数轻松形成资源的 URL,其中基本 URL 是从Applet.getDocumentBase()
或Applet.getCodeBase( )
。以下是取自 JaNeLA 的代码片段,它使用位于其中一个 Jars 内的 XSD。 URL 存储在
schemaSource
中。For an applet to get a resource from a server, it must use an URL. File objects will not work because:
File
object will point to a place on the computer of the user.File
objects. Hence theAccessControlException
in your output.URLs to resources can easily be formed using the
URL(baseURL, pathString)
constructor where the base URL is obtained fromApplet.getDocumentBase()
orApplet.getCodeBase()
.Here is a code snippet taken from JaNeLA that uses an XSD located inside one of the Jars. The URL is stored in
schemaSource
.