解决:Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs

文章目录

  • 一.问题描述
  • 二.问题原因
  • 三.问题解决
    • 3.1 解决步骤
    • 3.2 从Tomcat的Bin目录中启动服务器
    • 3.3 Eclipse启动Tomcat

一.问题描述

报错内容

十月 11, 2019 9:02:09 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SSH' did not find a matching property.
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version:        Apache Tomcat/8.0.47
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built:          Sep 29 2017 13:46:41 UTC
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number:         8.0.47.0
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name:               Windows 10
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version:            10.0
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture:          amd64
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home:             C:\Program Files\Java\jdk1.8.0_144\jre
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version:           1.8.0_144-b01
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor:            Oracle Corporation
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE:         D:\重要备份\0914\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME:         D:\apache-tomcat-8.0.47
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:\重要备份\0914\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\apache-tomcat-8.0.47
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dwtp.deploy=D:\重要备份\0914\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\apache-tomcat-8.0.47\endorsed
十月 11, 2019 9:02:09 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dfile.encoding=GBK
十月 11, 2019 9:02:09 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.8.0_144\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jdk1.8.0_144/bin/../jre/bin/server;C:/Program Files/Java/jdk1.8.0_144/bin/../jre/bin;C:/Program Files/Java/jdk1.8.0_144/bin/../jre/lib/amd64;C:\Program Files\Java\jdk1.8.0_144\bin;D:\initPath\node-v10.15.3-win-x64;D:\initPath\node-v10.15.3-win-x64\node_global;C:\Program Files\Java\jdk1.8.0_144\jre\bin;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\apache-maven-3.5.0-bin\apache-maven-3.5.0-bin\apache-maven-3.5.0\bin;D:\apache-maven-3.5.0-bin\apache-maven-3.5.0-bin\apache-maven-3.5.0\jre\bin;D:\apache-maven-3.5.0-bin\apache-maven-3.5.0-bin\apache-maven-3.5.0\bin;;C:\WINDOWS\System32\OpenSSH\;C:\Users\20190808\AppData\Local\Microsoft\WindowsApps;;C:\Program Files (x86)\eclipse;;.
十月 11, 2019 9:02:10 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-nio-8080"]
十月 11, 2019 9:02:11 上午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
信息: Using a shared selector for servlet write/read
十月 11, 2019 9:02:11 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-nio-8009"]
十月 11, 2019 9:02:11 上午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
信息: Using a shared selector for servlet write/read
十月 11, 2019 9:02:11 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 4371 ms
十月 11, 2019 9:02:11 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十月 11, 2019 9:02:11 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/8.0.47
十月 11, 2019 9:02:32 上午 org.apache.jasper.servlet.TldScanner scanJars
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
十月 11, 2019 9:02:33 上午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SSH]]
	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:943)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	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[Catalina].StandardHost[localhost].StandardContext[/SSH]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@60974247]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5102)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 6 more
Caused by: java.lang.IllegalArgumentException: The main resource set specified [D:\重要备份\0914\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SSH] is not valid
	at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:746)
	at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:704)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 9 more

十月 11, 2019 9:02:33 上午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	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:943)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:789)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:630)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	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: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:951)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 6 more

十月 11, 2019 9:02:33 上午 org.apache.catalina.startup.Catalina start
严重: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:630)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:789)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:951)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 11 more

十月 11, 2019 9:02:33 上午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-nio-8080"]
十月 11, 2019 9:02:33 上午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-nio-8009"]
十月 11, 2019 9:02:33 上午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
十月 11, 2019 9:02:33 上午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-nio-8080"]
十月 11, 2019 9:02:33 上午 org.apache.coyote.AbstractProtocol destroy
严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]
java.lang.NullPointerException
	at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:315)
	at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:491)
	at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:896)
	at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:551)
	at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
	at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
	at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
	at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
	at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:879)
	at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:634)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

十月 11, 2019 9:02:33 上午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["ajp-nio-8009"]
十月 11, 2019 9:02:33 上午 org.apache.coyote.AbstractProtocol destroy
严重: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
java.lang.NullPointerException
	at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:315)
	at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:491)
	at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:896)
	at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:551)
	at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
	at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
	at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
	at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
	at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:879)
	at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:634)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)


之前一直以为是tomcat端口占用有问题 ,后来找了网上杀死端口还是报错,不得不找老师,说是jar包问题,然后发现了这行报错才是关键点

信息: At least one JAR was scanned for TLDs yet contained no TLDs. 
Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them.
 Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

二.问题原因

1.出现这个问题的原因就是Tomcat启动时会扫描大量jar包,如果含有不符合TLD规范的就会出现这个问题

2.以后基本上不会使用JSP作为视图层,所以我们可能根本不需要TLD这个东西,就算不要TLD也没有什么关系

3.注意两个启动:一个是从tomcat的bin目录中启动,另外一个是从Eclipse中或者别的软件中启动,注意看Eclipse启动部

三.问题解决

3.1 解决步骤

1.可以在Tomcat安装目录下apache-tomcat-9.0.1\conf\catalina.properties文件中看到有以下一串代码,代表的是在启动Tomcat需要跳过检查的jar包
解决:Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs_第1张图片
2.那么解决办法就是跳过所以jar包的TLD检查,将所有tomcat.util.scan.StandardJarScanFilter.jarsToSkip=后面的所有通过\连接的这些.jar全部删除(操作之前请备份源文件),直接给tomcat.util.scan.StandardJarScanFilter.jarsToSkip赋值".jar",".jar"代表跳过所有以.jar结尾的文件,示例如下

tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar

解决:Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs_第2张图片

3.删除tomcat的work目录中的所有文件避免缓存干扰;清空所有logs目录中的日志文件,为了方便查看日志文件

3.2 从Tomcat的Bin目录中启动服务器

1.现在到bin目录中找到startup.bat(windows:双击即可运行)或startup.sh(Linux:命令 “./startup.sh” 运行)进行启动,发现启动超快

2.startdown,bat关闭服务器

3.注意:这里只是直接在bin中启动了tomcat服务器,接下来是从Eclipse配置tomcat,通过Eclipse启动服务器

3.3 Eclipse启动Tomcat

1.如果原来就已经配置过该Tomcat的会发现在Eclipse中启动还是老样子,每次卡在TLD那里,感觉根本没有解决,原因如下

  • Eclipse没有使用配置过的Tomcat,而是使用了自带的Tomcat
  • Eclipse中原来配置过该Tomcat,因为Tomcat缓存导致没有生效

2.接下在最重要的一步就是删除Eclipse原来配置过的服务器,单击右键选择删除即可

3.创建新的运行环境,改成现在新配置的Tomcat,这样才能让配置生效

4.运行一下服务器,发现就可以啦,
然后就可以部署项目了
解决:Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs_第3张图片

你可能感兴趣的:(#,eclipse异常,框架报错总结,#,tomcat异常)