【问题标题】:Grails default app not deploying to tomcatGrails 默认应用程序未部署到 tomcat
【发布时间】:2018-05-24 16:54:58
【问题描述】:

我有一个非常基本的 grails 应用程序,它是使用 create-app 生成的,并创建了一个简单的控制器。它在本地工作,但是当我使用“grails war”并将其部署在 tomcat 服务器中时,似乎存在数据库问题。 tomcat 日志中的最后一个'caused by' 是

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

我没有对 create-app 生成的数据库配置进行任何更改(因此使用嵌入式数据库)。

环境为:grails 3、debian 9、tomcat 8。

如何解决?

【问题讨论】:

    标签: java hibernate tomcat grails


    【解决方案1】:

    默认情况下,运行 grails war 会导致使用生产环境配置。数据库配置与生产不同,可能是问题的原因。您应该改用grails -Dgrails.env=development wargrails dev war

    【讨论】:

    • 你说得对,谢谢,这就是我本地环境和tomcat不同的原因。我会将您的帖子标记为答案,不过您能否解释一下为什么默认的 prod 环境不起作用?我也有点难以找到有关如何为 postgres 配置它的信息。
    • 在 application.yml 中,我可以看到 dev 数据源 url 是 url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE 而 prod 数据源 url 是 url: jdbc:h2:./prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE 。是文件权限问题吗?
    • 很可能存在文件权限问题。您必须找出在 tomcat 中运行的应用程序的上下文中 ./prodDb 解析为什么才能确定。此外,dbCreate 设置通常在生产中设置为none,可能会阻止创建数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    相关资源
    最近更新 更多