TOMcat无法启动,怎么回事,之前还可以不知道哪里出问题了一下子就不可以了,显示工件没部署

img


TOMcat无法启动,怎么回事,之前还可以不知道哪里出问题了一下子就不可以了,显示工件没部署

看这行应该是你的web.xml写的有问题

img

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/768186
  • 这篇博客也不错, 你可以看下解决Tomcat启动一闪而过,Tomcat无法启动加载的问题
  • 除此之外, 这篇博客: 运行tomcat测试项目,浏览器却提示找不到文件的原因中的 运行tomcat测试项目,浏览器却显示找不到文件的原因有哪些 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • **


    1. 将文件直接放置在webapps目录下

    我们有时候会直接将jsp文件直接放置在webapps下,如下图所示:

    jsp文件存储错误位置

    倘若这样放置文件,就会出现 HTTP Status 404 – 未找到 错误,所以,我们一定要在webapps下面建立一个项目,然后放置在项目里面,也就是说正确的访问目录格式应该为:

    	http://localhost:8080/项目名称/具体jsp文件
    	例如:
    	http://localhost:8080/test/example.jsp
    	当然,后面的路径还可以继续加,可以在test项目下的某个子项目下的某个特定jsp文件
    

    2. web.xml由冲突

    这个导致的上面的问题可能就一下子难以发现,而且我找遍了网上,貌似没有发现有人说明这个原因,但也有可能大神们不会犯这种低级错误。下面就介绍为什么会出现这种问题:

    当你学习jsp到了servlet时,你就会知道要给每一个servlet编写部署文件web.xml,如果你是在这个阶段出现这个问题,那恭喜你,你已经找到原因了,那就是你部署的web.xml命名冲突了。
    而这个冲突会导致你整个项目都无法在启动tomcat时被tomcat加载运行,所以就会导致无论你访问这个项目下的任何jsp文件都是会报错的。

    重名web.xml示例如下:
    web.xml

    这就是web.xml,我们用记事本打开,然后找里面是否出现重名,例如下面web.xml代码:

    <?xml version="1.0" encoding="UTF-8"?>
    
    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <servlet>
            <servlet-name>word</servlet-name>
            <servlet-class>myservlet.example5_2servlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>word</servlet-name>
            <url-pattern>/word</url-pattern>
        </servlet-mapping>
        <servlet>
            <servlet-name>triangle</servlet-name>
            <servlet-class>myservlet.example5_3servlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>triangle</servlet-name>
            <url-pattern>/triangle</url-pattern>
        </servlet-mapping>
        <servlet>
            <servlet-name>word</servlet-name>
            <servlet-class>myservlet.Example5_4_Servlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>word</servlet-name>
            <url-pattern>/word</url-pattern>
        </servlet-mapping>
       </web-app>
    

    在上面的web.xml中,最开始的servlet和最后面的servlet重名,他们都是word,所以我们只要将其修改成不同就可以了,这个问题就得以解决。

  • 您还可以看一下 CSDN就业班老师的第3章 性能调优之Tomcat篇课程中的 性能调优之Tomcat篇小节, 巩固相关知识点