【问题标题】:Unable to deploy Grails app to Tomcat 8 with JDK mismatch: 404 The requested resource is not available由于 JDK 不匹配,无法将 Grails 应用程序部署到 Tomcat 8:404 请求的资源不可用
【发布时间】:2016-01-19 20:21:12
【问题描述】:

我发现我无法将使用 Grails 创建的简单 helloworld Web 应用程序部署到 Tomcat 上。看起来 Tomcat 根本看不到应用程序,而只是一堆文件。

我尝试将静态 HTML 放入应用程序中,然后由 Tomcat 提供服务。

我尝试将 web 应用程序(在 groovy 中)的 logback 设置为更详细的级别,但没有任何反应,好像 Tomcat 忽略了它。

更新

我删除了细节,因为主要问题似乎很清楚:这是因为服务器上的 Tomcat 在 Java 1.7 下运行,而我正在为 1.8 编译的开发计算机上运行

但是问题仍然存在,因为我无法理解一种效果:目标 JDK 不匹配怎么会导致没有错误消息和异常,只是静默什么都没有发生?

【问题讨论】:

  • tomcat服务运行了吗?你使用的是什么JDK版本?在某些 tomcat 版本中使用 java 8 时我遇到了麻烦。您的防火墙也有可能阻止您的应用,尽管可能性很小。
  • Tomcat 正在运行,管理器正在运行,应用程序已列出(在文件夹名称下),但打开它会导致 404
  • 你看过 TOMCAT_HOME/logs/catalina.out 了吗?可能在tomcat启动过程中出现错误,并不能阻止tomcat启动
  • 我看了。 Tomcat 可以运行,因为我可以查看它的页面,比如 Manager。

标签: java tomcat grails deployment java-7


【解决方案1】:

您应该阅读有关启动 tomcat、在其上部署和管理应用程序的信息。查看official documentation

但首先检查一下这个默认的 webapps 管理器:http://localhost:8080/manager/ (但我认为您需要先添加tomcat用户才能获得它)

【讨论】:

  • Tomcat 正在运行,管理器正在运行,应用程序已列出(在文件夹名称下),但打开它会导致 404
  • 在 /tomcat/logs/catalina.out 中检查标准日志。如果您发现任何难以理解的问题,请粘贴。
  • 没有错误信息,只有应用注册成功的信息
  • 很难说 - 显示完整的日志。您也可以尝试通过管理控制台重新部署它并重新启动tomcat(以防任何泄漏)
【解决方案2】:

在您的 grails 应用程序中,查看两个地方:

  1. application.properties 并寻找app.name,通常上下文路径相同app.name
  2. BuildConfig.groovy 并寻找 grails.project.war.file。这将告诉您 zip 文件名的结构。

如果您的 Config.groovy 文件中有特定的属性集,请确保在您的 war 命令中添加环境名称。前war test

【讨论】:

  • 我没有application.properties,我有application.yml,它没有特殊的名称配置。
【解决方案3】:

你试过http://myhost/MyApp-0.1 吗? 如果您不更改 Config.groovy 中的任何内容,则路由类似但运行在 80 端口上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多