替换默认的TomcatServerFactory

时间:2012-06-01 17:11:08

标签: grails

我想更改默认的org.grails.plugins.tomcat.TomcatServerFactory 用户通过grails run-app与我的实现,但我无法做到。

查看源代码(grails 2.0.4),我在run-app脚本中看到了

的grails-芯/脚本/ _GrailsRun.groovy

93    String defaultServer = "org.grails.plugins.tomcat.TomcatServerFactory"
94    def containerClass = getPropertyValue("grails.server.factory", defaultServer)

我试图用我的类设置grails.server.factory,但它似乎只是被grails忽略了。

我已经测试过将configurazione放在BuildConfing中或者使用-D运行grails传递它但是没有成功。

我的错误是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

问题是Tomcat插件会在从scripts/_Events.groovy

中的命令行读取您的值后强制该值

您可以通过在Tomcat插件之后但在使用它之前触发的事件处理程序中设置它来使其工作,例如。

eventRunAppStart = {
   System.setProperty 'grails.server.factory', 'my.class.name'
}

如果要保持动态,可以将其值设置为您自己的系统属性,例如

eventRunAppStart = {
   System.setProperty 'grails.server.factory',
         System.getProperty('my.grails.server.factory')
}

并将run-app调用更改为

grails -Dmy.grails.server.factory=my.class.name run-app