Java 将Grails3应用程序部署到openshift

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

我创建了一个grails 3应用程序,并将生产环境配置如下:

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:并且运行良好。