【问题标题】:java.io.IOException when running 'grails tomcat deploy'运行“grails tomcat deploy”时出现 java.io.IOException
【发布时间】:2015-01-08 17:36:44
【问题描述】:

我正在尝试通过运行 grails tomcat deploy 的 tomcat 插件部署 Grails 应用程序。这样做时它工作得很好,除了我在 WAR 文件中的所有配置都是它们的开发值(例如,开发数据源正试图从我部署的 WAR 文件中使用)。

然后我尝试运行grails prod tomcat deploy,出现以下错误:

| Done creating WAR target/app##0.1-build-004.war
Deploying application /app to Tomcat
| Error Error executing script Tomcat: : java.io.IOException: Error writing request body to server (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
: java.io.IOException: Error writing request body to server
        at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:267)
        at org.apache.catalina.ant.DeployTask.execute(DeployTask.java:195)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.codehaus.gant.GantBuilder.invokeMethod(GantBuilder.java:99)
        at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:141)
        at Tomcat$_run_closure1.doCall(Tomcat:31)
        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)
Caused by: java.io.IOException: Error writing request body to server
        at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:220)
        ... 24 more
| Error Error executing script Tomcat: : java.io.IOException: Error writing request body to server

有谁知道为什么会发生这种情况?我正在使用 Grails 2.4.4 和 Java 7u71。

【问题讨论】:

  • 如果你 google that error message quoted 你会得到很多点击
  • 我查看了那些解决方案(当有解决方案时),但似乎没有一个解决问题。
  • 如果更改环境导致部署失败,这可能是一个错误吗?
  • Hey Casey 希望一切都好,找到这个可能有用:grails.1312388.n4.nabble.com/…
  • 谢谢@vahid,我会试一试。

标签: java tomcat grails


【解决方案1】:

对于 tomcat 7+,您需要在 tomcat-users.xml 中为您的用户添加 manager-script 角色。

来自Grails Tomcat Plugin Docs

雄猫 7 如果您使用的是 Tomcat 7,请确保用户具有 manager-script 角色

<user username="manager" password="secret" roles="manager-script" />

【讨论】:

  • 我确实有经理脚本角色,这是我首先要让它工作所必需的。问题是当环境设置为生产时部署不起作用。
  • 你能把你在 config.groovy 里的东西贴出来吗?
猜你喜欢
  • 2013-02-05
  • 1970-01-01
  • 2014-04-20
  • 2020-06-15
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多