Běžící Grails 3 na Heroku

hlasů
36

Snažím se nasadit nejjednodušší možné Grails 3 app na Heroku, ale bez úspěchu.

Heroku doc pouze poskytuje informace o vyslání Grails 2 aplikace. Takže jsem sledoval , že blogu článek , který vysvětluje, jak nasadit Grails 3 app. Ale to vede k následující výjimkou:

2015-06-09T21:03:41.637499+00:00 app[web.1]:   .   ____          _            __ _ _
2015-06-09T21:03:41.637570+00:00 app[web.1]: ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2015-06-09T21:03:41.637651+00:00 app[web.1]:   '  |____| .__|_| |_|_| |_\__, | / / / /
2015-06-09T21:03:41.637612+00:00 app[web.1]:  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
2015-06-09T21:03:41.637693+00:00 app[web.1]:  =========|_|==============|___/=/_/_/_/
2015-06-09T21:03:41.641123+00:00 app[web.1]: 
2015-06-09T21:03:41.641085+00:00 app[web.1]:  :: Spring Boot ::        (v1.2.3.RELEASE)
2015-06-09T21:04:03.066389+00:00 app[web.1]: ERROR org.apache.catalina.core.ContainerBase - A child container failed during start
2015-06-09T21:04:03.066397+00:00 app[web.1]: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
2015-06-09T21:04:03.066399+00:00 app[web.1]:    at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.8.0_40-'cedar14']
2015-06-09T21:04:03.066401+00:00 app[web.1]:    at java.util.concurrent.FutureTask.get(FutureTask.java:192) [na:1.8.0_40-'cedar14']
2015-06-09T21:04:03.066403+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) ~[webapp-runner.jar:na]
2015-06-09T21:04:03.066404+00:00 app[web.1]:    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) [webapp-runner.jar:na]
2015-06-09T21:04:03.066406+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [webapp-runner.jar:na]
2015-06-09T21:04:03.066408+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) [webapp-runner.jar:na]
2015-06-09T21:04:03.066409+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) [webapp-runner.jar:na]
2015-06-09T21:04:03.066411+00:00 app[web.1]:    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_40-'cedar14']
2015-06-09T21:04:03.066413+00:00 app[web.1]:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40-'cedar14']
2015-06-09T21:04:03.066414+00:00 app[web.1]:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40-'cedar14']
2015-06-09T21:04:03.066417+00:00 app[web.1]:    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-'cedar14']
2015-06-09T21:04:03.066419+00:00 app[web.1]: Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
2015-06-09T21:04:03.066420+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [webapp-runner.jar:na]
2015-06-09T21:04:03.066422+00:00 app[web.1]:    ... 6 common frames omitted
2015-06-09T21:04:03.066424+00:00 app[web.1]: Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
2015-06-09T21:04:03.066425+00:00 app[web.1]:    at org.apache.tomcat.websocket.server.WsServerContainer.<init>(WsServerContainer.java:147) ~[tomcat-embed-websocket-8.0.20.jar:8.0.20]
2015-06-09T21:04:03.066427+00:00 app[web.1]:    at org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:131) ~[tomcat-embed-websocket-8.0.20.jar:8.0.20]
2015-06-09T21:04:03.066429+00:00 app[web.1]:    at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:47) ~[tomcat-embed-websocket-8.0.20.jar:8.0.20]
2015-06-09T21:04:03.066431+00:00 app[web.1]:    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5274) ~[webapp-runner.jar:na]
2015-06-09T21:04:03.066432+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [webapp-runner.jar:na]
2015-06-09T21:04:03.066434+00:00 app[web.1]:    ... 6 common frames omitted

Všiml si toho někdo uspět při nasazení Grails 3 app na Heroku? Krok metodou krok by byl k nezaplacení.

Položena 09/06/2015 v 20:16
uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

I když nejsem odborník Grails, to se mi zdá jako verze střetu sklenice servlet API. Metoda ServletContext.getVirtualServerNameje k dispozici pouze od servlet API 3.1, ale vypadá to, že starší verze této nádoby je na cestě třídy a schová ten pravděpodobně prpvided by Tomcat. Zkuste to buď odstranit výslovný odkaz na servlet-api.jar z cesty tříd nebo nastavit její působnost na „předpokladu“ (je-li k dispozici).

Odpovězeno 09/06/2015 v 20:35
zdroj uživatelem

hlasů
3

  1. Zdá se, že máte závislost, která chce používat web sokety. Závislost je požadován vložený kocour 8 knihovny websocket. Webová aplikace běžec jar stáhnout v blogu je kocour 7 možná zkusit stáhnout verzi M1 pro 8.0.18

http://search.maven.org/#artifactdetails%7Ccom.github.jsimone%7Cwebapp-runner%7C8.0.18.0-M1%7Cjar


  1. Globální dataSourcevlastnost způsobuje ovladač Postgres nepodaří načíst. Odstraňte následující řádky grails-app/conf/application.yml:

    -dataSource:
    -    pooled: true
    -    jmxExport: true
    -    driverClassName: org.h2.Driver
    -    username: sa
    -    password:
    

PR: https://github.com/davydotcom/grails3-on-heroku/commit/8593e846efbd79804d9013db1b8b8f0e73cf9629

Odpovězeno 09/06/2015 v 21:55
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more