GWT Maps API v3 Core API

Я пытаюсь использовать GWT Maps API V3его в Spring Bootпроекте.
Я добавил его gradleбез каких-либо проблем и написал свой код, но при запуске он аварийно завершает работу, показывая следующее:

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.8.0_102]
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) [na:1.8.0_102]
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911) ~[tomcat-embed-core-8.5.5.jar:8.5.5]
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890) [tomcat-embed-core-8.5.5.jar:8.5.5]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.5.jar:8.5.5]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) [tomcat-embed-core-8.5.5.jar:8.5.5]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) [tomcat-embed-core-8.5.5.jar:8.5.5]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_102]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_102]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_102]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102]
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) [tomcat-embed-core-8.5.5.jar:8.5.5]
    ... 6 common frames omitted
Caused by: java.lang.IllegalStateException: java.lang.NullPointerException
    at org.springframework.boot.context.embedded.tomcat.TomcatResources$Tomcat7Resources.addJar(TomcatResources.java:125) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatResources.addClasspathResources(TomcatResources.java:63) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory$StoreMergedWebXmlListener.onStart(TomcatEmbeddedServletContainerFactory.java:805) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory$StoreMergedWebXmlListener.lifecycleEvent(TomcatEmbeddedServletContainerFactory.java:796) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) [tomcat-embed-core-8.5.5.jar:8.5.5]
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5087) ~[tomcat-embed-core-8.5.5.jar:8.5.5]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.5.jar:8.5.5]
    ... 6 common frames omitted
Caused by: java.lang.NullPointerException: null
    at org.springframework.boot.context.embedded.tomcat.TomcatResources$Tomcat7Resources.addJar(TomcatResources.java:122) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    ... 12 common frames omitted

Есть идеи, как использовать его с весной?

1 ответ

  1. Из этого блога попробуйте coping commons-logging.jarfile to WEB-INF/libfolder. Вы также должны были упаковать servlet-api.jarего вместе с другими библиотеками в файл war. Это можно проверить, открыв файл war и перейдя в WEB-INF/libпапку.

    Исходя из этого сообщения , Вы не должны предоставлять jar servlet-api. Контейнер, в вашем случае Tomcat, отвечает за предоставление его во время развертывания приложения. Если вы пытаетесь предоставить его, а также, то проблемы возникают из-за несоответствия версии и т.д. Лучше всего просто избегать упаковки. Извлеките его изWEB-INF/lib.

    Также согласно этому потоку:

    Ваш webapp имеет servletcontainer конкретных библиотек, таких как servlet-api.jarфайл в его /WEB-INF/lib. Это неправильно. Удалите их все. Он /WEB-INF/libдолжен содержать только библиотеки, относящиеся к webapp, а не к servletcontainer. Servletcontainer (как и Tomcat) — это тот, кто уже должен предоставить определенные библиотеки servletcontainer. Если вы предоставляете библиотеки из произвольного сервлетконтейнера другой версии make/, вы столкнетесь с проблемами такого рода, потому что ваше веб-приложение не сможет работать на сервлетконтейнере другой версии make/, чем та, откуда эти библиотеки берутся.