WebLogic之weblogic.xml.jaxp.RegistrySAXTransformerFactory

参考资料
1 Thread: java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXTransformerFactory
http://forums.oracle.com/forums/thread.jspa?messageID=3014917
http://forums.oracle.com/forums/thread.jspa?messageID=3017192
2 Weblogic 解析 xml 错误
http://www.zhiweinet.com/jiaocheng/2008-07/1117.htm
3 关于Spring和WebLogic版本兼容的一点小提示
http://fangrn.iteye.com/?page=2&show_full=true
4 weblogic常见问题解决方案 
http://tiankong2009519.blog.163.com/blog/static/117684369200910394345110/
5 weblogic8.1冲突
http://hi.baidu.com/zhoushugen/blog/item/27e1caf71bbc0024730eecdc.html
启动WebLogic服务异常

<2011-8-16 下午02时31分47秒 CST> <Error> <HTTP> <BEA-101165> <Could not load user defined filter in web.xml: org.apache.struts2.dispatcher.FilterDispatcher.
java.lang.ExceptionInInitializerError
at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:830)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:131)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130)
Truncated. see log file for complete stacktrace
java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXTransformerFactory
at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<clinit>(DomHelper.java:167)
at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:830)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:131)
Truncated. see log file for complete stacktrace

原因:weblogic使用了自己带的xml解析器造成的ClassCastException
解决方式
1 我的解决方法:由于项目中有个weblogic.jar,实际没有用到,直接删除就行了
2 在WEB-INF下的WebLogic.xml中作设置:prefer-web-inf-classes标签配置weblogic优先使用web程序自带的类库。
<container-descriptor>
       <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>

3 将以下条目添加到 $java.home/lib/jaxp.properties 文件来定义 XML 解析器类:   
javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
javax.xml.xpath.XPathFactory=org.apache.xpath.jaxp.XPathFactoryImpl    javax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl   javax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

猜你喜欢

转载自liuzidong.iteye.com/blog/1150594