tomcat上的Grails部署错误

时间:2014-01-01 18:57:05

标签: grails tomcat7

我正在尝试使用命令

在tomcat上部署grails应用程序
grails prod tomcat deploy --stacktrace

但是,我收到了以下错误。知道如何解决这个问题吗?我是第一次部署它。应用程序在我的本地计算机(mac)上的开发模式下工作正常。

| Error Error executing script Tomcat: No such property: warName for class: Tomcat (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
groovy.lang.MissingPropertyException: No such property: warName for class: Tomcat
    at Tomcat$_run_closure1.doCall(Tomcat:30)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
    at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
    at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
    at gant.Gant.withBuildListeners(Gant.groovy:427)
    at gant.Gant.this$2$withBuildListeners(Gant.groovy)
    at gant.Gant$this$2$withBuildListeners$0.callCurrent(Unknown Source)
    at gant.Gant.dispatch(Gant.groovy:415)
    at gant.Gant.this$2$dispatch(Gant.groovy)
    at gant.Gant.invokeMethod(Gant.groovy)
    at gant.Gant.executeTargets(Gant.groovy:591)
    at gant.Gant.executeTargets(Gant.groovy:590)
| Error Error executing script Tomcat: No such property: warName for class: Tomcat

2 个答案:

答案 0 :(得分:3)

我也遇到了这个问题,这是一个已知问题here。短期解决方法是修改文件

~/.grails/<vers>/projects/<project-name>/plugins/tomcat-7.0.42/scripts.Tomcat.groovy

如图所示here

答案 1 :(得分:0)

如果我没错,那里没有名为'grails prod tomcat deploy'的命令。如果你告诉我们你从哪里获得这个命令,那就太好了。

默认情况下,大多数部署配置都是为了开发而开发的,但您可以根据需要更改(Config.groovy,BuildConfig.grovvy等)

可能会在以下步骤中为您提供帮助。

  1. Config.groovy

    环境{    发展{     grails.logging.jul.usebridge = true     }

    生产{      grails.logging.jul.usebridge = false
         // grails.serverURL =“http://www.changeme.com
         //其他生产env相关参数在这里    } }

  2. BuildConfig.groovy

    以及依赖关系和其他配置检查以下条目

    // grails.project.class.dir =“target / classes”
     //grails.project.test.class.dir =“target / test-classes”
     //grails.project.test.reports.dir =“target / test-reports”
     //grails.project.work.dir =“target / work”
     //grails.project.target.level = 1.7
     //grails.project.source.level = 1.7
     grails.project.war.file =“target / $ {appName} .war”//你的项目战争文件

  3. 运行'grails run-war' - 这将默认在生产环境中运行,并在给定文件夹下为您提供战争,

  4. 将战争部署到tomcat。

  5. 感谢
    Motilal