- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在我的 Web 应用程序中,我需要使用 Saxon TransformerFactory 才能使用 XSLT 2.0,但我不能使用 setProperty 方法,因为我在 Web 服务器上没有此权限并且有一个安全管理器。
所以我读到应该可以这样做:
Use the Services API (as detailed in the JAR specification), if available, to determine the classname. The Services API will look for a classname in the file META-INF/services/javax.xml.transform.TransformerFactory in jars available to the runtime.
我在 WEB-INF/lib/saxon9.jar 中找到了这个文件,但是当我建立一个 TransformerFactory 时,总是选择默认工厂而不是 Saxon 工厂。
如何选择撒克逊变压器厂?
谢谢
最佳答案
正确的方法是在获取新的 TransformerFactory 时指定工厂类。
我不认为调用特定的工厂实现会起作用 - 我相信默认的系统转换器可能仍会返回(至少当我在类路径中有 xalan 和 saxon 时会发生这种情况)。
示例:
TransformerFactory tFactory = TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl",null);
或为撒克逊人
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);
Javadocs:
Obtain a new instance of a TransformerFactory from factory class name. This function is useful when there are multiple providers in the classpath. It gives more control to the application as it can specify which provider should be loaded. Once an application has obtained a reference to a TransformerFactory it can use the factory to configure and obtain transformer instances.
关于java - 如何在 Java 中选择撒克逊 TransformerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968190/
我编写了在打印之前将文档转换为字符串的代码 TransformerFactory tf = TransformerFactory.newInstance(); Tran
我有一个 Java 中的 XSLT 转换器(实际上是它的 Apache FOP 渲染为 PDF),我已经在其中设置了一个自定义 URIResolver(用于“servlet-context:”URI)
我面临着一个非常烦人的问题,导致服务器 Java 进程终止,从这段代码中踢出(精简): _sesXslProc = new ArrayList(); TransformerFactory tFacto
我遇到一个问题,我不知道根本原因到底是什么。 我创建了 javax.xml.transform.TransformerFactory 的实例,然后直接解析 xsltSource: protected
我有以下代码: final TransformerFactory factory = TransformerFactory.newInstance(); factory.setAttribute(XM
我正在使用 JAXP XSLT API (javax.xml.transform) 来转换 xml 文件。 TransformerFactory transformerFactory = Transf
我需要为 XML 文档的离线转换编写程序。使用以下内容加载原始 XML 文件时,我已经能够停止 DTD 网络查找: DocumentBuilderFactory factory; factory =
出于安全原因,我添加了声明: transformerFactory.setFeature("http://javax.xml.XMLConstants/property/accessExternalD
在我的 Web 应用程序中,我需要使用 Saxon TransformerFactory 才能使用 XSLT 2.0,但我不能使用 setProperty 方法,因为我在 Web 服务器上没有此权限并
我正在使用 Apache FOP 2.4 生成一个以 XML 文件作为输入的 PDF 文档。为了防止 XXE 攻击,我需要在 TransformerFactory 中设置安全处理功能 (FEATURE
Transformer 文档 ( https://docs.oracle.com/javase/8/docs/api/javax/xml/transform/TransformerFactory.ht
我打算在我的 JSF 2.0 项目中使用 Saxon-B 9。但是在添加对 Saxon & Saxon-dom 的依赖后,异常开始出现在启动时: Sep 25, 2010 6:05:45 PM com
在jdk1.6中,我在设置的时候 transformerFactory.setFeature(XMLConstants.ACCESS_EXTERNAL_DTD, false) 我遇到了以下错误: ja
在哪里可以找到作为 javax.xml.TranformerFactory.setAttribute(String,String) 的合法输入的属性列表?输入非法字符串会产生讨厌的运行时异常。 最佳答
我们无法正确转换 Unicode 字符。我们以 XML 格式提供输入,当我们尝试转换时,我们无法取回原始字符串。 这是我正在使用的代码, StringCarrier OStringCarrier =
TransformerFactory.newInstance().newTransformer(streamSource) 怎么会返回 null。根据 javadoc 这是不可能的: http://d
我正在使用 javax.xml.transform.Transform 将 XML 文件转换为 PDF。这本身就可以正常工作,但项目的某些部分正在使用 Xalan,它实现了自己的 Transforme
Java API 保证它永远不会返回 null - 但对我来说,它是! http://download.oracle.com/javase/6/docs/api/javax/xml/transform
我的问题: Fortify 4.2.1 将以下代码标记为易受 XML 外部实体攻击。 TransformerFactory factory = TransformerFactory.newInstan
我创建了一个网络应用程序,它使用 Saxon 库进行 XSLT 转换。当 Web 应用程序使用自己的名称(等于 webapps 目录中的子目录的名称)部署在 Tomcat 上时,此应用程序运行良好。但
我是一名优秀的程序员,十分优秀!