Java 将Grails3应用程序部署到openshift
我创建了一个grails 3应用程序,并将生产环境配置如下:Java 将Grails3应用程序部署到openshift,java,grails,gradle,openshift,Java,Grails,Gradle,Openshift,我创建了一个grails 3应用程序,并将生产环境配置如下: environments { production { dataSource { dbCreate = "update" driverClassName = "org.postgresql.Driver" dialect= CustomPostgresDialect uri = new URI(System.gete
environments {
production {
dataSource {
dbCreate = "update"
driverClassName = "org.postgresql.Driver"
dialect= CustomPostgresDialect
uri = new URI(System.getenv("OPENSHIFT_POSTGRESQL_DB_URL"))
url = "jdbc:postgresql://" + uri.host + ":" + uri.port + "/" + System.getenv("OPENSHIFT_APP_NAME")
username = System.getenv("OPENSHIFT_POSTGRESQL_DB_USERNAME")
password = System.getenv("OPENSHIFT_POSTGRESQL_DB_PASSWORD")
}
}
}
我遵循以下步骤:
但是当我尝试访问应用程序URL时,我得到了一个404
我无法从日志中找出问题所在:
In app-root/logs/postgresql.log
2016-06-20 12:16:20 GMT LOG: database system is shut down
2016-06-20 12:16:29 GMT LOG: could not bind socket for statistics collector: Permission denied
2016-06-20 12:16:29 GMT LOG: trying another address for the statistics collector
2016-06-20 12:16:29 GMT LOG: could not bind socket for statistics collector: Cannot assign requested address
2016-06-20 12:16:29 GMT LOG: disabling statistics collector for lack of working socket
2016-06-20 12:16:29 GMT WARNING: autovacuum not started because of misconfiguration
2016-06-20 12:16:29 GMT HINT: Enable the "track_counts" option.
2016-06-20 12:16:29 GMT LOG: database system was shut down at 2016-06-20 12:16:20 GMT
2016-06-20 12:16:29 GMT FATAL: the database system is starting up
2016-06-20 12:16:29 GMT LOG: database system is ready to accept connections
In app-root/logs/jbossews.log
Jun 20, 2016 8:16:36 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.54
Jun 20, 2016 8:16:36 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/openshift/5767c8e30c1e6699f90000eb/app-root/runtime/dependencies/jbossews/webapps/ROOT.war
Jun 20, 2016 8:17:06 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive /var/lib/openshift/5767c8e30c1e6699f90000eb/app-root/runtime/dependencies/jbossews/webapps/ROOT.war has finished in 29,596 ms
Jun 20, 2016 8:17:06 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-127.12.216.1-8080"]
Jun 20, 2016 8:17:06 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 29969 ms
我遗漏了什么?错误在于spring security的设置。默认情况下,spring security会重定向到我不支持的URL 通过查阅文档,我发现该设置可以被覆盖,如下所示:
environments {
production {
dataSource {
dbCreate = "update"
driverClassName = "org.postgresql.Driver"
dialect= CustomPostgresDialect
uri = new URI(System.getenv("OPENSHIFT_POSTGRESQL_DB_URL"))
url = "jdbc:postgresql://" + uri.host + ":" + uri.port + "/" + System.getenv("OPENSHIFT_APP_NAME")
username = System.getenv("OPENSHIFT_POSTGRESQL_DB_USERNAME")
password = System.getenv("OPENSHIFT_POSTGRESQL_DB_PASSWORD")
}
}
}
grails.plugin.springsecurity.auth.loginFormUrl='/api/login'
如果未指定,spring security将使用默认值:/login/auth
您是否尝试过:?@TarasKohut我在yml配置中添加了路径,但仍然得到相同的结果。我需要添加服务器URL吗?我在本地有serverURL:并且运行良好。