Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat Grails生成的war文件忽略数据源URL_Tomcat_Grails_War Filedeployment - Fatal编程技术网

Tomcat Grails生成的war文件忽略数据源URL

Tomcat Grails生成的war文件忽略数据源URL,tomcat,grails,war-filedeployment,Tomcat,Grails,War Filedeployment,Grails版本:1.1 Tomcat版本:5.5 问题是: 应用程序不使用URL数据源 看起来-它使用的是其他数据源-但它似乎不在内存数据库中-因为我可以看到会话之间持久化的数据 我甚至尝试过给一个不存在的数据库命名——应用程序运行良好。我的意思是,我能够在应用程序中保存数据并很好地获取它 我无法找出数据在哪里被持久化 我使用命令-grailswar生成了war文件 这就是数据源配置的样子 dataSource { pooled = true driverClassNam

Grails版本:1.1

Tomcat版本:5.5

问题是: 应用程序不使用URL数据源

看起来-它使用的是其他数据源-但它似乎不在内存数据库中-因为我可以看到会话之间持久化的数据

我甚至尝试过给一个不存在的数据库命名——应用程序运行良好。我的意思是,我能够在应用程序中保存数据并很好地获取它 我无法找出数据在哪里被持久化

我使用命令-grailswar生成了war文件

这就是数据源配置的样子

 dataSource {

    pooled = true

    driverClassName = "com.mysql.jdbc.Driver"

    username = "user"

    password = "pwd"

 }

 hibernate {

    cache.use_second_level_cache=true

    cache.use_query_cache=true

    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'

 }

 environments {

    production {

        dataSource {

            dbCreate = "create" 

            url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

            dialect = org.hibernate.dialect.MySQL5Dialect

        }

    }

 }  

您看到了什么证据表明Grails忽略了您的数据源

在运行Grails创建mydb之前,您是否进入了MySQL,添加了一个具有“usr”和“pwd”的用户,并授予了相应的权限?Grails不会为你这么做的

一旦数据库存在,Grails将为您创建模式。您应该能够登录、使用mydb和“显示表”来查看模式


但是您必须首先创建数据库。

您需要设置一个生产数据源,因为grails在生成war时就是使用这个数据源的


development {

        dataSource {

                dbCreate = "create" 

                url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

                dialect = org.hibernate.dialect.MySQL5Dialect
}
        }

production {

        dataSource {

                dbCreate = "create" 

                url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

                dialect = org.hibernate.dialect.MySQL5Dialect
}
        }


1) 如果我输入了一个不存在的服务器名称-没有错误-CRUD的工作方式与ususal相同2)我正在使用eatj.com托管应用程序-并且我已经确认数据库架构确实存在3)没有创建表。我可以自己尝试创建这些表,但这不会有帮助,因为它似乎根本不使用URL对不起,这是我在产品设置中的输入错误,与development相同(事实上测试也是一样的),默认情况下,Grails在构建war时使用“prod”环境,如果您想覆盖它,可以运行“grailsdevwar”,找到解决方案了吗?我也有同样的问题。不是真的-过了一段时间我不再面对这个问题。我推断我犯了一个错误。但无法确认