2009-02-04 182 views
2

我有一个非常简单的代码行中我来源:SAX解析器在Applet的失败

XMLReader xmlReaderFactory = XMLReaderFactory.createXMLReader(); 

这从一个应用程序完美的作品,但是,从一个小程序,它会尝试加载的“.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) 

可能是什么问题?

回答

2

看起来好像您正试图配置使用除JRE以外的SAX实现。该配置指向一个以至少两个空行开始的Windows文本文件。 SAX实现可以通过系统属性org.xml.sax.driver进行配置,或者包含在名称为META-INF/services/org.xml.sax.driver的jar中的文件中。

1

您可能会从服务器获取该类文件的404错误。有关详细信息,请参见此bug report

+0

我想这是一种可能性。目前,我通过硬编码xml解析器名称(丑陋)来解决它。但为什么它甚至会尝试使用空名称加载一个类? – jsight 2009-02-04 21:59:58