Tomcat Grails生成的war文件忽略数据源URL
Grails版本:1.1 Tomcat版本:5.5 问题是: 应用程序不使用URL数据源 看起来-它使用的是其他数据源-但它似乎不在内存数据库中-因为我可以看到会话之间持久化的数据 我甚至尝试过给一个不存在的数据库命名——应用程序运行良好。我的意思是,我能够在应用程序中保存数据并很好地获取它 我无法找出数据在哪里被持久化 我使用命令-grailswar生成了war文件 这就是数据源配置的样子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
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”,找到解决方案了吗?我也有同样的问题。不是真的-过了一段时间我不再面对这个问题。我推断我犯了一个错误。但无法确认