我可以在Jetty中成功运行我的Grails应用程序。它成功连接到我的MsSql数据库,一切都很好。当我在同一台机器上的Tomcat 6中部署相同的应用程序时,我在Tomcat日志中启动时收到以下错误:
Caused by: java.net.ConnectException: Connection refused: connect
我不相信我的MsSql服务器是问题,因为我在同一个Tomcat实例中运行了另一个Java应用程序并成功访问了同一个数据库服务器。
当我在Jetty和Tomcat中部署它时,连接字符串完全相同。我在Tomcat 6中部署Grails应用程序时无法连接到我的数据库的任何想法?当我的Grails应用程序部署在Tomcat中时,我似乎无法访问任何数据库。 (我的其他Java应用程序(Confluence)连接没有问题。
这是我的连接信息:
dataSource {
pooled = true
driverClassName = "net.sourceforge.jtds.jdbc.Driver"
username = "user"
password = "pass"
}
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop','update'
url = "jdbc:jtds:sqlserver://localhost:1143/holidayCards"
}
}
test { //for AD-DEV02
dataSource {
dbCreate = "update"
url = "jdbc:jtds:sqlserver://AD-DEV02:1237/holidayCards;instance=SQL2005"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:jtds:sqlserver://SQL:1433/holidayCards"
}
}
}
我总是将其部署为'test':
grails test war
正如您从下面的回答中看到的那样,我不认为这是一个连接问题,因为当我从grails 1.1beta1降级到1.0.4 时我能够成功地工作
感谢任何帮助,
安德鲁
答案 0 :(得分:3)
您的DataSource.groovy文件是什么样的?使用'grails run-app'运行应用程序时,Grails使用“开发”部分中的数据源。当您使用'grails war'生成war文件并将其部署到应用程序服务器时,Grails使用“生产”部分中的数据源。您可能需要确保开发和生产数据源的配置相同。
答案 1 :(得分:1)
这是grails 1.1beta1的问题。当我将我的应用程序恢复为grails 1.0.4时,它似乎工作。不幸的是,我不得不更改几段代码,因为测试版的grails修复了一些错误,但这似乎根植于我使用的grails版本。
我刚刚使用1.1beta1创建了一个空的grails应用程序,我能够在Tomcat中成功部署它(并访问数据库)。这让我觉得我的项目中还有一些其他设置与beta版不兼容。也许这是我的jquery插件。也许是我的项目从grails 1.0.4升级到1.1beta1
这并没有解决问题,但它缩小了它。
安德鲁