在grails中指定部署时的实现

时间:2013-11-14 16:52:24

标签: grails groovy

这个问题特别源于在grails应用程序中指定XMLOutputFactory实现,但我一直在寻找更通用的grails方法来实现这一点。所以这里。

在我们的grails应用程序中,我们使用XMLOutputFactory来构建渲染文档的XMLWriters。现在我们正在寻找的XMLOutputFactory实现存在于Sun的这个类的实现中,即com.sun.xml.internal.stream.XMLOutputFactoryImpl。

因此,为了使用它,我们将它作为Glassfish中的系统属性添加,我们将其用作我们的应用服务器,并且按照我们的预期工作。这引出了我的问题,我们如何在Grails应用程序中使用此映射,以便我们不需要为此更新服务器属性。

最初我认为它应该只是将它添加到Config.groovy,但我不认为系统属性与grails配置属性相同。

第二个选项是在命令时使用-D param调用它们。这很有效,但我一直在寻找更优雅的解决方案。

因此,有没有“grails”方式来做到这一点?如果是这样,一旦部署到容器中,这些属性是否会持续存在?或者更新容器属性是解决此问题的唯一方法。

我希望这是有道理的:)。

由于

1 个答案:

答案 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