亚马逊 linux + java 1.8 + tomcat8 错误
Posted
技术标签:
【中文标题】亚马逊 linux + java 1.8 + tomcat8 错误【英文标题】:Amazon linux + java 1.8 + tomcat8 error 【发布时间】:2016-11-20 12:41:33 【问题描述】:我使用 EC2 amazon linux + java 1.8 + tomcat8。 安装程序如下:
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
yum install tomcat8-webapps tomcat8-admin-webapps
但是我的 spring mvc 示例程序不起作用,tomcat8 的示例程序也不起作用。
我不知道为什么。请帮帮我
18-Jul-2016 01:24:20.092 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本:Apache Tomcat/8.0.35 2016 年 7 月 18 日 01:24:20.094 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器建成时间:2016 年 6 月 10 日 17:49:21 UTC 2016 年 7 月 18 日 01:24:20.097 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器号:8.0.35.0 2016 年 7 月 18 日 01:24:20.097 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:Linux 2016 年 7 月 18 日 01:24:20.097 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 操作系统版本:4.4.11-23.53.amzn1.x86_64 2016 年 7 月 18 日 01:24:20.098 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 架构:amd64 2016 年 7 月 18 日 01:24:20.098 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log Java 主页:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-0.b14 .10.amzn1.x86_64/jre 2016 年 7 月 18 日 01:24:20.098 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:1.8.0_91-b14 18-Jul-2016 01:24:20.098 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 供应商:Oracle Corporation 2016 年 7 月 18 日 01:24:20.103 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/share/tomcat8 2016 年 7 月 18 日 01:24:20.103 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/share/tomcat8 2016 年 7 月 18 日 01:24:20.104 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcatalina.base=/usr/share/tomcat8 18-Jul-2016 01:24:20.104 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcatalina.home=/usr/share/tomcat8 2016 年 7 月 18 日 01:24:20.105 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.endorsed.dirs= 18-Jul-2016 01:24:20.105 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.io.tmpdir=/var/cache/tomcat8/temp 2016 年 7 月 18 日 01:24:20.105 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.util.logging.config.file=/usr/share/tomcat8/conf/logging 。特性 2016 年 7 月 18 日 01:24:20.105 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 2016 年 7 月 18 日 01:24:20.106 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 在 java.library.path 上找不到基于 APR 的 Apache Tomcat Native 库,该库允许在生产环境中获得最佳性能: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 2016 年 7 月 18 日 01:24:20.266 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["http-nio-8080"] 2016 年 7 月 18 日 01:24:20.297 INFO [main] org.apache.tomcat.util.net.NioselectorPool.getSharedSelector 使用共享选择器进行 servlet 写入/读取 2016 年 7 月 18 日 01:24:20.301 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["ajp-nio-8009"] 2016 年 7 月 18 日 01:24:20.302 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector 使用共享选择器进行 servlet 写入/读取 2016 年 7 月 18 日 01:24:20.309 INFO [main] org.apache.catalina.startup.Catalina.load 初始化处理时间为 899 毫秒 18-Jul-2016 01:24:20.356 INFO [main] org.apache.catalina.core.StandardService.startInternal 启动服务 Catalina 2016 年 7 月 18 日 01:24:20.356 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 启动 Servlet 引擎:Apache Tomcat/8.0.35 2016 年 7 月 18 日 01:24:20.406 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR 部署 Web 应用程序存档 /var/lib/tomcat8/webapps/fwarnotice.war 2016 年 7 月 18 日 01:24:23.966 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少扫描了一个 JAR 以查找 TLD,但未包含 TLD。启用此记录器的调试日志记录以获取已扫描但未在其中找到 TLD 的 JAR 的完整列表。在扫描期间跳过不需要的 JAR 可以缩短启动时间和 JSP 编译时间。 2016 年 7 月 18 日 01:24:24.021 信息 [localhost-startStop-1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext:初始化开始 2016 年 7 月 18 日 01:24:24.167 信息 [localhost-startStop-1] org.springframework.web.context.support.XmlWebApplicationContext.prepareRefresh 刷新根 WebApplicationContext:启动日期 [2016 年 7 月 18 日星期一 01:24:24 UTC];上下文层次的根 2016 年 7 月 18 日 01:24:24.245 信息 [localhost-startStop-1] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions 从 ServletContext 资源 [/WEB-INF/context.xml] 加载 XML bean 定义 2016 年 7 月 18 日 01:24:24.416 INFO [localhost-startStop-1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext:初始化在 394 毫秒内完成 2016 年 7 月 18 日 01:24:24.778 信息 [localhost-startStop-1] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet 'globalWeb':初始化开始 2016 年 7 月 18 日 01:24:24.781 信息 [localhost-startStop-1] org.springframework.web.context.support.XmlWebApplicationContext.prepareRefresh 为命名空间“globalWeb-servlet”刷新 WebApplicationContext:启动日期 [7 月 18 日星期一 01:24 :24 UTC 2016];父级:根 WebApplicationContext 2016 年 7 月 18 日 01:24:24.783 信息 [localhost-startStop-1] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions 从 ServletContext 资源 [/WEB-INF/globalWeb-servlet.xml] 加载 XML bean 定义 2016 年 7 月 18 日 01:24:25.249 信息 [localhost-startStop-1] org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping.registerHandler 根映射到处理程序'webConteroller' 2016 年 7 月 18 日 01:24:25.483 信息 [localhost-startStop-1] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet 'globalWeb':初始化在 705 毫秒内完成 2016 年 7 月 18 日 01:24:25.499 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Web 应用程序存档 /var/lib/tomcat8/webapps/fwarnotice.war 的部署已完成 5,092小姐 2016 年 7 月 18 日 01:24:25.502 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR 部署 Web 应用程序存档 /var/lib/tomcat8/webapps/spring_mvc_test.war 2016 年 7 月 18 日 01:24:26.521 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild:开始: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring_mvc_test]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 在 org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940) 在 org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 引起:java.lang.NullPointerException 在 org.apache.jasper.servlet.TldScanner$TldScannerCallback.scanWebInfClasses(TldScanner.java:401) 在 org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:208) 在 org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) 在 org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:106) 在 org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:103) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5261) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) ... 10 更多 2016 年 7 月 18 日 01:24:26.523 严重 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR 部署 Web 应用程序存档 /var/lib/tomcat8/webapps/spring_mvc_test.war 时出错 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring_mvc_test]] 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 在 org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940) 在 org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 2016 年 7 月 18 日 01:24:26.524 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Web 应用程序存档 /var/lib/tomcat8/webapps/spring_mvc_test.war 的部署已在 1,022 完成小姐 18-Jul-2016 01:24:26.526 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /var/lib/tomcat8/webapps/docs 2016 年 7 月 18 日 01:24:26.774 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少扫描了一个 JAR 以查找 TLD,但未包含 TLD。启用此记录器的调试日志记录以获取已扫描但未在其中找到 TLD 的 JAR 的完整列表。在扫描期间跳过不需要的 JAR 可以缩短启动时间和 JSP 编译时间。 18-Jul-2016 01:24:26.775 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web 应用程序目录 /var/lib/tomcat8/webapps/docs 的部署在 249 毫秒内完成 2016 年 7 月 18 日 01:24:26.776 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /var/lib/tomcat8/webapps/sample 2016 年 7 月 18 日 01:24:27.070 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少扫描了一个 JAR 以查找 TLD,但未包含 TLD。启用此记录器的调试日志记录以获取已扫描但未在其中找到 TLD 的 JAR 的完整列表。在扫描期间跳过不需要的 JAR 可以缩短启动时间和 JSP 编译时间。 18-Jul-2016 01:24:27.075 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web 应用程序目录 /var/lib/tomcat8/webapps/sample 的部署在 299 毫秒内完成 2016 年 7 月 18 日 01:24:27.077 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /var/lib/tomcat8/webapps/host-manager 2016 年 7 月 18 日 01:24:27.327 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 扫描了至少一个 JAR 以查找 TLD,但未包含 TLD。启用此记录器的调试日志记录以获取已扫描但未在其中找到 TLD 的 JAR 的完整列表。在扫描期间跳过不需要的 JAR 可以缩短启动时间和 JSP 编译时间。 18-Jul-2016 01:24:27.339 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web 应用程序目录 /var/lib/tomcat8/webapps/host-manager 的部署已在 262 完成小姐 18-Jul-2016 01:24:27.344 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /var/lib/tomcat8/webapps/manager 2016 年 7 月 18 日 01:24:27.595 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少扫描了一个 JAR 以查找 TLD,但未包含 TLD。启用此记录器的调试日志记录以获取已扫描但未在其中找到 TLD 的 JAR 的完整列表。在扫描期间跳过不需要的 JAR 可以缩短启动时间和 JSP 编译时间。 18-Jul-2016 01:24:27.597 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web 应用程序目录 /var/lib/tomcat8/webapps/manager 的部署在 253 毫秒内完成 18-Jul-2016 01:24:27.598 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /var/lib/tomcat8/webapps/ROOT 2016 年 7 月 18 日 01:24:27.849 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少扫描了一个 JAR 以查找 TLD,但未包含 TLD。启用此记录器的调试日志记录以获取已扫描但未在其中找到 TLD 的 JAR 的完整列表。在扫描期间跳过不需要的 JAR 可以缩短启动时间和 JSP 编译时间。 18-Jul-2016 01:24:27.854 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web 应用程序目录 /var/lib/tomcat8/webapps/ROOT 的部署在 255 毫秒内完成 2016 年 7 月 18 日 01:24:27.854 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /var/lib/tomcat8/webapps/examples 2016 年 7 月 18 日 01:24:27.862 警告 [localhost-startStop-1] org.apache.catalina.startup.SetContextPropertiesRule.begin [SetContextPropertiesRule]Context 将属性“allowLinking”设置为“true”没有找到匹配的属性. 2016 年 7 月 18 日 01:24:27.879 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild:开始: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 在 org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092) 在 org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 引起:java.lang.NullPointerException 在 org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:322) 在 org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:183) 在 org.apache.catalina.startup.ContextConfig.processJarsForWebFragments(ContextConfig.java:1887) 在 org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1127) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5171) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) ... 10 更多 2016 年 7 月 18 日 01:24:27.880 严重 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /var/lib/tomcat8/webapps/examples 时出错 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]] 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 在 org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092) 在 org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 18-Jul-2016 01:24:27.881 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web 应用程序目录 /var/lib/tomcat8/webapps/examples 的部署在 27 毫秒内完成 2016 年 7 月 18 日 01:24:27.889 信息 [main] org.apache.coyote.AbstractProtocol.start 启动 ProtocolHandler ["http-nio-8080"] 2016 年 7 月 18 日 01:24:27.901 信息 [main] org.apache.coyote.AbstractProtocol.start 启动 ProtocolHandler ["ajp-nio-8009"] 18-Jul-2016 01:24:27.902 INFO [main] org.apache.catalina.startup.Catalina.start 服务器在 7592 毫秒内启动【问题讨论】:
【参考方案1】:您实际上在 Tomcat 8.0.35 中遇到了一个错误。在Tomcat 8.0 won't start with pure Spring MVC template 有更多信息,在NPE in org.apache.jasper.servlet.TldScanner$TldScannerCallback.scanWebInfClasses 有实际的错误报告
快速解决方案是升级到 Tomcat 8.0.36 或在应用程序的 WEB-INF/classes/META-INF 下创建一个空的 MANIFEST.MF 文件。
【讨论】:
以上是关于亚马逊 linux + java 1.8 + tomcat8 错误的主要内容,如果未能解决你的问题,请参考以下文章
亚马逊裁员 1.8 万余人,史上最大规模,美国技术行业衰退迹象加重?
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8
Android N requires the IDE to be running with Java 1.8 or later
解决 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8