这个问题特别源于在grails应用程序中指定XMLOutputFactory实现,但我一直在寻找更通用的grails方法来实现这一点。所以这里。
在我们的grails应用程序中,我们使用XMLOutputFactory来构建渲染文档的XMLWriters。现在我们正在寻找的XMLOutputFactory实现存在于Sun的这个类的实现中,即com.sun.xml.internal.stream.XMLOutputFactoryImpl。
因此,为了使用它,我们将它作为Glassfish中的系统属性添加,我们将其用作我们的应用服务器,并且按照我们的预期工作。这引出了我的问题,我们如何在Grails应用程序中使用此映射,以便我们不需要为此更新服务器属性。
最初我认为它应该只是将它添加到Config.groovy,但我不认为系统属性与grails配置属性相同。
第二个选项是在命令时使用-D param调用它们。这很有效,但我一直在寻找更优雅的解决方案。
因此,有没有“grails”方式来做到这一点?如果是这样,一旦部署到容器中,这些属性是否会持续存在?或者更新容器属性是解决此问题的唯一方法。
我希望这是有道理的:)。
由于
答案 0 :(得分:0)
如果部署Config.groovy
的此配置更改是一个放置它的好地方,因为您可以externalize it,因此在您的服务器环境中,您可以替换配置的值。
Config.groovy中
application.xmlFactory=...
grails.config.locations = [classpath:external-config.groovy]
外部Config.groovy中
application.xmlFactory=com.sun.xml.internal.stream.XMLOutputFactoryImpl