Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 小程序故障中的SAX解析器_Java_Applet_Sax - Fatal编程技术网

Java 小程序故障中的SAX解析器

Java 小程序故障中的SAX解析器,java,applet,sax,Java,Applet,Sax,我的源代码中有一行非常简单的代码: XMLReader xmlReaderFactory = XMLReaderFactory.createXMLReader(); 这在应用程序中可以完美地工作,但是,在applet中,它尝试从服务器加载“.class”文件(没有类名,只是扩展名,正如您所看到的那样),然后无法给我一个解析器 Exception in thread "Thread-13" java.lang.ClassFormatError: Incompatible magic value

我的源代码中有一行非常简单的代码:

XMLReader xmlReaderFactory = XMLReaderFactory.createXMLReader();
这在应用程序中可以完美地工作,但是,在applet中,它尝试从服务器加载“.class”文件(没有类名,只是扩展名,正如您所看到的那样),然后无法给我一个解析器

Exception in thread "Thread-13" java.lang.ClassFormatError: Incompatible magic value 218762506 in class file 
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.xml.sax.helpers.NewInstance.newInstance(Unknown Source)
    at org.xml.sax.helpers.XMLReaderFactory.loadClass(Unknown Source)
    at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(Unknown Source)

可能是什么问题?

您可能从该类文件的服务器返回404错误。有关详细信息,请参阅此部分。

看起来您正在尝试配置使用除JRE中的SAX实现之外的SAX实现。配置指向一个以至少两行空行开头的Windows文本文件。SAX实现可以通过系统属性
org.xml.SAX.driver
进行配置,或者包含在名为
META-INF/services/org.xml.SAX.driver
的jar文件中,我想这是可能的。目前,我已经通过硬编码xml解析器名称(丑陋)解决了这个问题。为什么它甚至会尝试加载一个空名称的类呢?啊。它尝试读取网页META-INF/services/org.xml.sax.driver。因为您的web服务器表现不好,所以它会返回一个第一行为空的有效页面。它使用该空行作为要加载的类名。同样,由于web服务器故障,它会作为文件启动返回\r\n\r\n。因此,快速修复-我认为您可以在web服务器上放置一个该名称的完全空文件(或者只修复web服务器)。