【问题标题】:tomcat8 maven plugin - failed to find rt.jartomcat8 maven插件 - 找不到rt.jar
【发布时间】:2018-04-02 04:05:52
【问题描述】:

我正在尝试使用我从以下网站下载的 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,供应商:甲骨文公司
Java 主页:C:\Program Files\Java\jdk1.8.0_151\jre
默认语言环境:en_GB,平台编码:Cp1252
操作系统名称:“windows 10”,版本:“10.0”,arch:“amd64”,家族:“dos”

【问题讨论】:

  • 我认为 Tomcat 堆栈跟踪末尾的 Tomcat maven 插件非常奇怪。请出示您的 pom.xml 文件。
  • pom.xml 请...

标签: maven tomcat8 maven-tomcat-plugin


【解决方案1】:

问题是路径C:\Program%20Files\ ...中的URL编码空格字符

这不是 - afaik - 有效的 Windows 路径。

如果您自己没有明确设置,可能是插件中的错误。

更新:这似乎是一个错误:

Maven goal of tomcat8:run fails if Java runtime is installed in path containing spaces

【讨论】:

  • 感谢@pirho 的提醒,我现在只使用tomcat7
【解决方案2】:

tomcat maven插件支持的最高版本是tomcat 7,可以试试spring boot,里面有多个内嵌容器

【讨论】:

  • 您可以使用tomcat7-maven-plugin 部署到Tomcat 8。我也将它与Tomcat 9 一起使用。另见this question
猜你喜欢
  • 2019-09-25
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
相关资源
最近更新 更多