Плагин tomcat8 maven - не удалось найти rt.jar

Я пытаюсь использовать плагин maven tomcat8, который я скачал с:

https://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat8-maven-plugin

Когда я запускаю с mvn tomcat8:run, я получаю следующую ошибку:

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/launchbi-admin]]
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:868)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/launchbi-admin]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        ... 6 more
Caused by: java.lang.RuntimeException: C:\Program%20Files\Java\jdk1.8.0_151\jre\lib\rt.jar (The system cannot find the path specified)
        at org.apache.tomcat.maven.plugin.tomcat8.run.RunMojo$2.urlToWebResource(RunMojo.java:499)
        at org.apache.tomcat.maven.plugin.tomcat8.run.RunMojo$2.getClassLoaderResource(RunMojo.java:383)
        at org.apache.catalina.loader.WebappClassLoaderBase.findResourceInternal(WebappClassLoaderBase.java:2529)
        at org.apache.catalina.loader.WebappClassLoaderBase.findResource(WebappClassLoaderBase.java:929)
        at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1096)
        at org.apache.catalina.startup.ContextConfig.populateJavaClassCache(ContextConfig.java:2148)
        at org.apache.catalina.startup.ContextConfig.populateJavaClassCache(ContextConfig.java:2138)
        at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2043)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1995)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1944)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1919)
        at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1880)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5120)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 6 more
Caused by: java.io.FileNotFoundException: C:\Program%20Files\Java\jdk1.8.0_151\jre\lib\rt.jar (The system cannot find the path specified)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:103)
        at org.apache.tomcat.maven.plugin.tomcat8.run.RunMojo$2.urlToWebResource(RunMojo.java:479)

Однако rt.jar существует, и моя среда JAVA_HOME настроена правильно:

mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Домашняя страница Maven: C:\Users\Jonathan\Downloads\apache-maven-3.3.9-bin\ apache-maven-3.3.9
Версия Java: 1.8.0_151, поставщик: Oracle Corporation
Домашняя страница Java: C:\Program Files\Java\jdk1.8.0_151\jre
Язык по умолчанию: en_GB, платформа кодировка: Cp1252
Название ОС: "windows 10", версия: "10.0", архитектура: "amd64", семейство: "dos"


person Johno    schedule 20.10.2017    source источник
comment
Я думаю, что присутствие плагина Tomcat maven в конце трассировки стека Tomcat очень странно. Пожалуйста, покажите ваш файл pom.xml.   -  person Steve C    schedule 21.10.2017
comment
pom.xml пожалуйста...   -  person Pratik Ambani    schedule 21.10.2017


Ответы (2)


Проблема заключается в символе пробела в кодировке URL в пути C:\Program%20Files\ ...

Это неправильный путь Windows.

Если вы не установите его явно сами, это может быть ошибкой в ​​​​плагине.

Обновление: похоже, это ошибка:

Цель Maven tomcat8:run не выполняется, если среда выполнения Java установлена ​​в пути, содержащем пробелы

person pirho    schedule 21.10.2017
comment
спасибо за наводку @pirho, пока я просто останусь с tomcat7 - person Johno; 28.10.2017

самая высокая версия, которую поддерживает плагин tomcat maven, — это tomcat 7, вы можете попробовать весеннюю загрузку, в которой есть несколько встроенных контейнеров.

person gredezcici    schedule 13.03.2018
comment
Вы можете использовать tomcat7-maven-plugin для развертывания на Tomcat 8. Я использовал его также с Tomcat 9. См. также этот вопрос. - person pirho; 15.03.2018