应该使用哪一种XML解析器
XML解析器选用不当,经常会导致使用Apache Axis时出现一些莫名其妙的问题。
由于Apache Axis 并未对Resin内置的xml解析器进行过测试,因此推荐读者使用已通过测试的Xerces xml解析器。可以从 http://xml.apache.org/xalan-j/index.html 处下载Xalan的Java版XSLT处理器,其中包含了Xerces的Java版XML解析器,不需要再单独下载xml解析器。
Xalan 2.5.1解包后,将bin/目录下的xercesImpl.jar、xml-apis.jar和xalan.jar复制到resin安装目录的lib/目录下,例如/usr/local/resin/lib。
编辑/etc/目录下的profile文件,找到设置CLASSPATH环境变量的位置,在其后加入下面的内容(B shell)。
XMLPARSER=$RESIN_HOME/lib/xalan.jar:$RESIN_HOME/lib/xercesImpl.jar:$RESIN_HOME/lib/xml-apis.jar
export CLASSPATH=$XMLPARSER:$CLASSPATH
注意事项
如果CLASSPATH中包含其它的XML解析器设置,应将其从CLASSPATH环境变量的设置中去掉,以免发生冲突。
通过修改resin.conf将resin的XmlParser置换为Xerces的XmlParser。在resin.conf对应的Web应用程序配置中加入以下设置。
<system-property javax.xml.transform.TransformerFactory="org.apache.xalan.processor.TransformerFactoryImpl"/>
<system-property javax.xml.parsers.DocumentBuilderFactory="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
<system-property javax.xml.parsers.SAXParserFactory="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
<system-property org.xml.sax.driver="org.apache.xerces.parsers.SAXParser"/>
配置完成后重新启动Resin。
Tags: Axis, resin
Leave a Reply
You must be logged in to post a comment.
近期评论