【问题标题】:Looking options for xalan TransformerFactoryImpl寻找 xalan TransformerFactoryImpl 的选项
【发布时间】:2012-07-17 12:40:02
【问题描述】:

我正在使用基于 SAX 的 xml 解析器,一切正常,但我在日志中收到以下警告消息

com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl is Sun proprietary API and may be removed in a future release 
                            transformerFactory = new TransformerFactoryImpl(); 
                                                      ^ 

我想摆脱这个,有人可以建议我使用 TransformerFactoryImpl 的其他选项吗?

提前致谢,

【问题讨论】:

    标签: jakarta-ee xml-parsing sax saxparser xalan


    【解决方案1】:

    您可以使用 TransformerFactory.newInstance() 代替:

    javax.xml.transform.TransformerFactory tf =       
            javax.xml.transform.TransformerFactory.newInstance();
    

    Javadocs 中告诉了它如何确定要加载的实现。

    如果需要注意您在幕后使用的实现与当前使用的完全相同,则只需在获取 TransformerFactory 实例之前设置以下系统属性即可。我认为使用相同的实现很方便,只要您摆脱错误消息。

    System.setProperty("javax.xml.transform.TransformerFactory",          
                       "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
    

    【讨论】:

    • 你好@Mikko,我最初尝试了 javax.xml.transform.TransformerFactory 但我遇到了以下异常。
       无法转换 javax.xml.transform.stax.StAXSource 类型的源:javax.xml.transform.TransformerException:无法在 org.apache 转换 javax.xml.transform.stax.StAXSource 类型的源.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:366) 

      我错过了设置系统属性。谢谢您的帮助。非常感谢,钦梅帕塔克
    猜你喜欢
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多