• java 之 jsp tomcat启动失败问题


    问题描述:

    创建了一个helloServlet

    代码如下

    package Test;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class helloServlet
     */
    @WebServlet("/helloServlet")
    public class helloServlet extends HttpServlet {
    //    private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public helloServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setCharacterEncoding("GBK");
            response.getWriter().write("你好 世界");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }

    接着配置

    web.xml

    代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>haha</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
      <!-- 类名 -->
          <servlet-name>helloServlet</servlet-name>
          <!-- 类所在的包路径 -->
          <servlet-class>Test.helloServlet</servlet-class>
       </servlet>
      <!-- 映射路径 -->
      <servlet-mapping>
      
      <servlet-name>helloServlet</servlet-name>
      <url-pattern>TomcatTest/helloServlet</url-pattern>
      </servlet-mapping>
     
    </web-app>

    启动server

    报错错误如下

     Server Tomcat v7.0 Server at localhost failed to start.

    日志:

    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Server version:        Apache Tomcat/7.0.92
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Server built:          Nov 9 2018 11:07:44 UTC
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Server number:         7.0.92.0
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: OS Name:               Windows 10
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: OS Version:            10.0
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Architecture:          amd64
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Java Home:             C:Program FilesJavajre1.8.0_161
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: JVM Version:           1.8.0_161-b12
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: JVM Vendor:            Oracle Corporation
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: CATALINA_BASE:         D:Eclipse_WorkSpace.metadata.pluginsorg.eclipse.wst.server.core	mp0
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: CATALINA_HOME:         D:apache-tomcat-7.0.92
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Command line argument: -Dcatalina.base=D:Eclipse_WorkSpace.metadata.pluginsorg.eclipse.wst.server.core	mp0
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Command line argument: -Dcatalina.home=D:apache-tomcat-7.0.92
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Command line argument: -Dwtp.deploy=D:Eclipse_WorkSpace.metadata.pluginsorg.eclipse.wst.server.core	mp0wtpwebapps
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Command line argument: -Djava.endorsed.dirs=D:apache-tomcat-7.0.92endorsed
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Command line argument: -Dfile.encoding=GBK
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    信息: Loaded APR based Apache Tomcat Native library 1.2.18 using APR version 1.6.5.
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.core.AprLifecycleListener initializeSSL
    信息: OpenSSL successfully initialized (OpenSSL 1.1.1  11 Sep 2018)
    十二月 28, 2018 8:45:59 下午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["http-apr-8080"]
    十二月 28, 2018 8:45:59 下午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["ajp-apr-8009"]
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 439 ms
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.core.StandardService startInternal
    信息: Starting service Catalina
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.core.StandardEngine startInternal
    信息: Starting Servlet Engine: Apache Tomcat/7.0.92
    十二月 28, 2018 8:45:59 下午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
    警告: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [182] milliseconds.
    十二月 28, 2018 8:46:00 下午 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[/haha]]
        at java.util.concurrent.FutureTask.report(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1243)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1707)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1697)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/haha]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
        ... 6 more
    Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> TomcatTest/helloServlet in servlet mapping
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3471)
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3446)
        at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1439)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1352)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
        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:5566)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 6 more
    
    十二月 28, 2018 8:46:00 下午 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(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1243)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:710)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
    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:1707)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1697)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: org.apache.catalina.LifecycleException: A child container failed during start
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1254)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 6 more
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/haha]]
        at java.util.concurrent.FutureTask.report(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1243)
        ... 8 more
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/haha]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
        ... 6 more
    Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> TomcatTest/helloServlet in servlet mapping
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3471)
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3446)
        at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1439)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1352)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
        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:5566)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 6 more
    
    十二月 28, 2018 8:46:00 下午 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:710)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
    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:758)
        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:444)
        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:1254)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 11 more
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
        at java.util.concurrent.FutureTask.report(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1243)
        ... 13 more
    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:1707)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1697)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: org.apache.catalina.LifecycleException: A child container failed during start
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1254)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 6 more
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/haha]]
        at java.util.concurrent.FutureTask.report(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1243)
        ... 8 more
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/haha]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
        ... 6 more
    Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> TomcatTest/helloServlet in servlet mapping
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3471)
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3446)
        at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1439)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1352)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
        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:5566)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 6 more
    
    十二月 28, 2018 8:46:00 下午 org.apache.coyote.AbstractProtocol pause
    信息: Pausing ProtocolHandler ["http-apr-8080"]
    十二月 28, 2018 8:46:00 下午 org.apache.coyote.AbstractProtocol pause
    信息: Pausing ProtocolHandler ["ajp-apr-8009"]
    十二月 28, 2018 8:46:00 下午 org.apache.catalina.core.StandardService stopInternal
    信息: Stopping service Catalina
    十二月 28, 2018 8:46:00 下午 org.apache.coyote.AbstractProtocol destroy
    信息: Destroying ProtocolHandler ["http-apr-8080"]
    十二月 28, 2018 8:46:00 下午 org.apache.coyote.AbstractProtocol destroy
    信息: Destroying ProtocolHandler ["ajp-apr-8009"]

    解决方案:

    根据日志可以分析出可能跟web.xml有关

    推测是否是eclipse自动会设置映射路径,于是删掉配置的servlet

    代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>haha</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
     
    </web-app>

    启动server

    成功

    问题解决

  • 相关阅读:
    windowsserver2016系统性能和功能对比介绍
    联想x3650m5服务器安装windows2008R2系统
    Linux修改主机名
    Windows Server 2008 R2 忘记密码的处理方法
    Centos7 安装教程(详细版)
    CentOS 6.5的安装详解(图文详解)
    centos 6.5 忘记用户名和密码
    磁盘阵列的区别和特点
    什么是OSI参考模型?
    MTU是什么?
  • 原文地址:https://www.cnblogs.com/zero-vic/p/10192741.html
Copyright © 2020-2023  润新知