tomcat5启动说servlet-jsp.jar not loaded

本文聚焦Java程序员使用Tomcat5进行WEB开发和部署时遇到的ClassLoader相关问题。先介绍了Class Loader的运行机制,包括结构、委托模型、装载连接及初始化;接着阐述Tomcat5中的ClassLoader;最后分析Tomcat5与WEB应用中出现的错误及解决办法,如java.lang.NoClassDefFoundError等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[j2ee]Tomcat5 和 ClassLoader
number01 发表于 2005-6-28 下午 09:30:00  
许多Java程序员在用Tomcat5进行WEB开发和部署过程中,都会遇到与ClassLoader有关的问题.例如经常出现的
java.lang.NoClassDefFoundError.在本文下面的叙述中,将首先介绍Class Loader(类装载器)的运行机制,然后再介绍Tomcat5中的
ClassLoader,以及在Tomcat5实际操作中遇到的问题和解决方法.


Tomcat5 和 ClassLoader
---作者:张增志


概要
许多Java程序员在用Tomcat5进行WEB开发和部署过程中,都会遇到与ClassLoader有关的问题.例如经常出现的
java.lang.NoClassDefFoundError.在本文下面的叙述中,将首先介绍Class Loader(类装载器)的运行机制,然后再介绍Tomcat5中的
ClassLoader,以及在Tomcat5实际操作中遇到的问题和解决方法.


一.   Class Loader(类装载器)
1.      类装载器结构
类装载器(Class Loader)是Java虚拟机的组成部分之一,如图1所示.Java虚拟机有两种类装载器:启动类装载器和用户自定义类装载器.
URL: ::URL:: http://blog.blogchina.com/upload/2004-11-24/20041124104254943028.jpg

图1:Java虚拟机的内部体系结构.
启动类装载器   每个Java虚拟机实现都必须有一个启动类装载器.在Sun的JDK 1.2以后的版本中,启动类装载器只负责在系统类(核心Java API的class文件)的安装路径中查找要装入的类.
用户自定义类装载器   它是普通的Java对象,它的类必须继承自java.lang.ClassLoader类.在Sun的JDK 1.2以后的版本中,用户自定义类装载器负责核心Java API以外的其它class文件的装载.例如,用于安装或下载标准扩展的class文件,在类路径中发现的类库的class文件,用于应用程序运行的class文件,等等.
命名空间   Java虚拟机为每一个类装载器维护一个唯一标识的命名空间.一个Java程序可以多次装载具有同一个全限定名(指类所属的包名加类名,如java.lang.Object就是类Object的全限定名)的多个类(class). Java虚拟机要确定这"多个类"的唯一性,因此,当多个类装载器都装载了同名的类时,为了唯一地标识这个类,还要在类名前加上装载该类的类装载器的标识(指出了类所位于的命名空间).例如:ExtClassLoader 装载了sun.text.resources.DateFormatZoneData_zh_CN类,AppClassLoader装载了sun.text.resources.DateFormatZoneData_zh_HK类, Java虚拟机就认为这两个类位于不同的包中,彼此之间不能访问私有成员.如果AppClassLoader也装载了sun.text.resources.DateFormatZoneData_zh_CN类, 虽然"类名"相同,Java虚拟机也认为它们是不同的类,因为它们处在不同的命名空间中.
2.      委托(Delegation)模型
当Java虚拟机开始运行时,在应用程序开始启动以前,它至少创建一个用户自定义装载器,也可能创建多个.所有这些装载器被连接在一个Parent-Child的委托链中,在这个链的顶端是启动类装载器,末端是被称为"系统类装载器"的类装载器.
例如,假设你写了一个应用程序,在虚拟机上运行它.虚拟机在启动时实例化了两个用户自定义类装载器:一个"扩展类装载器",一个"类路径类装载器".这些类装载器和启动类装载器一起联入一个Parent-Child委托链中,如图2所示.
URL: ::URL:: http://blog.blogchina.com/upload/2004-11-24/2004112410430176267.jpg

图2:Parent-Child类装载器委托链
类路径类装载器的Parent是扩展类装载器, 扩展类装载器的Parent是启动类装载器.在图2中,类路径类装载器就被实例为系统类装载器.假设你的程序实例化它的网络类装载器,它就指明了系统类装载器作为它的Parent.
下面的例程说明了类装载器的父子关系.
例程1:
package test;
import java.net.URL;
import java.net.URLClassLoader;
public class ClassLoaderTest {
    private static int count = -1;
    public static void testClassLoader(Object obj) {
        if (count < 0 && obj == null) {
            System.out.println("Input object is NULL" ;
            return;
        }
        ClassLoader cl = null;
        if (obj != null && !(obj instanceof ClassLoader)) {
            cl = obj.getClass().getClassLoader();
        } else if (obj != null) {
            cl = (ClassLoader) obj;
        }
        count++;
        String parent = "";
        for (int i = 0; i < count; i++) {
            parent += "Parent ";
        }
        if (cl != null) {
            System.out.println(
                parent + "ClassLoader name = " + cl.getClass().getName());
            testClassLoader(cl.getParent());
        } else {
            System.out.println(
                parent + "ClassLoader name = BootstrapClassLoader" ;
            count = -1;
        }
    }
    public static void main(String[] args) {
        URL[] urls = new URL[1];
        URLClassLoader urlLoader = new URLClassLoader(urls);
        ClassLoaderTest.testClassLoader(urlLoader);
    }
}
以上例程的输出为:
ClassLoader name = java.net.URLClassLoader
Parent ClassLoader name = sun.misc.Launcher$AppClassLoader
Parent Parent ClassLoader name = sun.misc.Launcher$ExtClassLoader
Parent Parent Parent ClassLoader name = BootstrapClassLoader
类装载器请求过程
以上例程1为例.将main方法改为:
        ClassLoaderTest tc = new ClassLoaderTest();
        ClassLoaderTest.testClassLoader(tc);
输出为:
ClassLoader name = sun.misc.Launcher$AppClassLoader
Parent ClassLoader name = sun.misc.Launcher$ExtClassLoader
Parent Parent ClassLoader name = BootstrapClassLoader
程序运行过程中,类路径类装载器发出一个装载ClassLoaderTest类的请求, 类路径类装载器必须首先询问它的Parent---扩展类装载器---来查找并装载这个类,同样扩展类装载器首先询问启动类装载器.由于ClassLoaderTest不是Java API(JAVA_HOME/jre/lib)中的类,也不在已安装扩展路径(JAVA_HOME/jre/lib/ext)上,这两类装载器都将返回而不会提供一个名为ClassLoaderTest的已装载类给类路径类装载器.类路径类装载器只能以它自己的方式来装载ClassLoaderTest,它会从当前类路径上下载这个类.这样,ClassLoaderTest就可以在应用程序后面的执行中发挥作用.
在上例中, ClassLoaderTest类的testClassLoader方法被首次调用,该方法引用了Java API中的类java.lang.String.Java虚拟机会请求装载ClassLoaderTest类的类路径类装载器来装载java.lang.String.就像前面一样,类路径类装载器首先将请求传递给它的Parent类装载器,然后这个请求一路被委托到启动类装载器.但是,启动类装载器可以将java.lang.String类返回给类路径类装载器,因为它可以找到这个类,这样扩展类装载器就不必在已安装扩展路径中查找这个类,类路径类装载器也不必在类路径中查找这个类.扩展类装载器和类路径类装载器仅需要返回由启动类装载器返回的类java.lang.String.从这一刻开始,不管何时ClassLoaderTest类引用了名为java.lang.String的类,虚拟机就可以直接使用这个java.lang.String类了.
在上述过程中也可能会发生错误,在本文下面的例子中将会涉及.
3.      装载 连接及初始化
在一个Java类的生命周期中,装载,连接和初始化只是其开始阶段.只有开始阶段结束以后,类才可以被实例化并被使用.整个开始阶段必须按以下顺序进行:
1)装载   把二进制形式的Java class读入虚拟机中.
2)连接   把已经读入虚拟机的二进制形式的类数据合并到虚拟机的运行状态中去.连接阶段分为验证,准备和解析三个子步骤.
3)初始化   给类变量赋以适当的初始值.
Java虚拟机允许类装载器(启动或用户自定义类装载器)缓存Java class的二进制形式,在预知某个类将要被使用时就装载它.如果一个类装载器在预先装载时遇到问题,它应该在该类被"首次主动使用"时报告该问题(通过抛出一个java.lang.LinkageError的子类).也就是说,如果一个类装载器在预先装载时遇到缺失或错误的class文件,它必须等到程序首次被主动使用该类时才报告错误.如果这个类一直没有被程序主动使用,那么该类装载器将不会报告错误.
二.  Tomcat5中的Class Loader
当Tomcat5启动的时候,它会首先创建一组class loader,如commonLoader, sharedLoader, catalinaLoader,webappLoader等.其委托模型如下图3所示:
     Bootstrap
          |
     System
          |
     Common
       /      /
Catalina   Shared
                 /
                Webapp1 ...
图3:Tomcat5类装载器委托模型
其中,
1)    Bootstrap 该类装载器装载JAVA_HOME/jre/lib和JAVA_HOME/jre/lib/ext两目录上的JAR包.
2)    System 该类装载器装载当前CLASSPATH上的JAR包.在Windows系统下, CLASSPATH环境变量会在CATALINA_HOME/bin/setclasspath.bat和CATALINA_HOME/bin/catalina.bat文件中被重新设置.
3)    Common 该类装载器装载CATALINA_HOME/common/classes目录中的类, CATALINA_HOME/commons/endorsed和CATALINA_HOME/common/lib目录中的JAR包.
4)    Catalina 该类装载器装载CATALINA_HOME/server/classes和CATALINA_HOME/server/lib目录中的类和JAR包.
5)    Shared 该类装载器装载CATALINA_HOME/shared/classes和CATALINA_HOME/shared/lib目录中的类和JAR包.
6)    WebappX 该类装载器装载WEB-INF/classes和WEB-INF/lib目录中的类和JAR包.
 
需要补充说明的是,WebappX类装载器独立于上文提到的Java2的委托模型.当WebappX类装载器装载一个类时,它会首先查找本身所辖目录(即WEB-INF/classes和WEB-INF/lib)下的类,而不会启动委托机制.当然对于Bootstrap和System类装载器中存在的类,是要进行委托的.另外,对于下面这些包中的类,如:
javax.* 
org.xml.sax.* 
org.w3c.dom.* 
org.apache.xerces.* 
org.apache.xalan.* 
WebappX类装载器装载时也要启动委托机制.
例如,假设ojdbc14.jar处在setclasspath.bat中的CLASSPATH下,同时也处在WEB-INF/lib目录下.类装载器系统在请求装载oracle.jdbc.driver.OracleDriver类时,会得到从System类装载器返回的类,而不是WebappX类装载器.
再假设ojdbc14.jar处在CATALINA_HOME/common/lib和WEB-INF/lib目录下,而没有处在setclasspath.bat中的CLASSPATH下,那么类装载器系统就会得到从WebappX类装载器返回的类,而不是Common类装载器.
另外,如果WEB-INF/lib目录下存在包含有servlet API类的JAR包,该JAR包将会被WebappX类装载器忽略.例如,
考虑到应用程序的编译问题,你可能会把servlet-api.jar包Copy到应用程序中的WEB-INF/lib目录下.那么,在Tomcat5启动时,启动屏幕上就会出现如下输出:
2004/09/12 14:53:57 org.apache.catalina.loader.WebappClassLoader validateJarFile
情报: validateJarFile(E:/MyData/myProjects/MyBS_SQL/web/WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
上述信息并不影响你的程序运行.因为WebappX类装载器虽然会忽略掉WEB-INF/lib目录下servlet-api.jar包,但是,Common类装载器已经装载了servlet-api.jar包.如前所述,对于javax.*中的类, WebappX类装载器是要启动委托机制的,所以WebappX类装载器会得到Common类装载器返回的javax.*中的类.
如果不希望Tomcat5启动时输出上述信息,只需将servlet-api.jar包从应用程序中的WEB-INF/lib目录下移走就行了.
总结一下,Tomcat5类装载器系统在请求装载一个类时,它以下面列举的顺序进行:
·         Bootstrap (JAVA_HOME/jre/lib和JAVA_HOME/jre/lib/ext)
·         System (当前CLASSPATH上)
·         /WEB-INF/classes 和/WEB-INF/lib/*.jar
·         CATALINA_HOME/common/classes 
·         CATALINA_HOME/common/endorsed/*.jar 
·         CATALINA_HOME/common/lib/*.jar 
·         CATALINA_HOME/shared/classes 和CATALINA_HOME/shared/lib/*.jar
三.  Tomcat5与WEB应用
我们在用Tomcat5进行应用开发时,经常需要将第三方JAR包添加到应用中.通常的作法是Copy这些JAR包到/WEB-INF/lib目录下.
但是,有些情况可能不允许我们这样Copy JAR包到Tomcat5认可的目录下(如本文上一部分提到的Tomcat5下的目录).这样我们就只有修改CATALINA_HOME/bin/setclasspath.bat和CATALINA_HOME/bin/catalina.bat文件中的CLASSPATH变量了.
假设你需要添加ojdbc14.jar到你的应用中,而又不允许你把它从/oracle/ora92/jdbc/lib目录下Copy到别的目录下,于是你可能会修改CATALINA_HOME/bin/setclasspath.bat文件,新的文件中可能存在如下代码:
set CLASSPATH=%CLASSPATH%;D:/oracle/ora92/jdbc/lib/ojdbc14.jar
这样就满足了应用本身的要求.
1.      出现java.lang.NoClassDefFoundError错误
 
我们继续上面的讨论,同样是在不允许Copy JAR包的情况下.
当你在Tomcat5中部署一个应用时,发现该应用需要一个coreapi.jar包(这个JAR包是你的开发人员为一个正在开发的工具开发的,你要部署的应用是该工具的产品),由于该工具正在开发过程中,你和开发人员没有进行充分地沟通,所以不知道这个JAR包中的某一个类A.class继承了javax.servlet.Servlet类,于是你只在CATALINA_HOME/bin/setclasspath.bat文件添加如下代码,就没有把servlet-api.jar添加到CLASSPATH上.
set CLASSPATH=%CLASSPATH%;D:/myTool/lib/coreapi.jar
当你测试时,发现运行某一个URL时,会出现如下错误:
root cause 
java.lang.NoClassDefFoundError: javax/servlet/Servlet
...
下面我们就分析一下为什么会出现这个运行错误.
按照你的配置,coreapi.jar现处在CLASSPATH上,所以A.class被System类装载器装载. System类装载器在装载A.class时,发现它引用了javax.servlet.Servlet类,按照类装载器系统的委托模型,System类装载器会首先请求Bootstrap类装载器,Bootstrap类装载器不能返回javax.servlet.Servlet类给System类装载器,System类装载器自己也不能装载javax.servlet.Servlet类.也就是说,此时的类装载器系统在预装载时遇到一个缺失的javax.servlet.Servlet 类文件.但是,如本文第一部分中的装载 连接及初始化所述,在类装载器系统工作过程中开始阶段发生的这个问题并不会被马上报告,而是在javax.servlet.Servlet类被"首次主动使用时"抛出java.lang.NoClassDefFoundError(java.lang.LinkageError的子类之一).
解决该错误的方法当然就是把servlet-api.jar也添加到CLASSPATH上.如
set CLASSPATH=%CLASSPATH%;D:/myTool/lib/coreapi.jar;%BASEDIR%/common/lib/servlet-api.jar
2.   Tomcat5中的UserDatabase
Tomcat5默认配置了一个全局JNDI资源UserDatabase, 默认配置如下:
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved">
    </Resource>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory
        </value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
利用它,我们可以修改pathname下的值conf/tomcat-users.xml(该值可配,如改为<value>conf/tomcat-zzz.xml</value> 文件中的数据.
为了修改tomcat-users.xml文件中的数据,我们在WEB应用中可以先取得Object,例程如下:
例程2:
1        try {
2            InitialContext initCtx = new InitialContext();
3            Object obj = initCtx.lookup("java:comp/env/userDatabase" ;
4            UserDatabase udb = (UserDatabase) obj;
5        } catch (Exception e) {
6            e.printStackTrace();
7        }
当例程2运行时,会产生一个错误,如:
root cause 
java.lang.NoClassDefFoundError: org/apache/catalina/UserDatabase
...
上一错误是例程2中的第4行抛出的.因为UserDatabase类处在CATALINA_HOME/server/lib/catalina.jar包中,被Catalina类装载器装载.例程2所在的类处在WebappX类装载器,根据类装载器系统的委托机制, WebappX类装载器不会得到从Catalina类装载器返回的UserDatabase类.所以程序运行到例程2中的第4行时,会抛出java.lang.NoClassDefFoundError.
假设你把CATALINA_HOME/server/lib目录中的catalina.jar包及其相关JAR包Copy到/WEB-INF/lib目录下(当然这仅仅是一种测试情况),程序运行到第4行时,则会出现java.lang.ClassCastException. 因为WebappX类装载器得到的UserDatabase类是其本身装载的,与从JNDI中得到的UserDatabase类处在不同的命名空间中,是不同的类.
你还可以把catalina.jar包及其相关JAR包设置到CLASSPATH下.但还是强烈建议你不要这么做.
既然不能显式地声明UserDatabase类,我们可以通过反射(Reflection)的方式进行方法调用.
 
例程3:
        try {
            InitialContext initCtx = new InitialContext();
            Object obj = initCtx.lookup("java:comp/env/userDatabase" ;
            Class[] cl =
                new Class[] { String.class, String.class, String.class };
            Method cm = obj.getClass().getMethod("createUser", cl);
            String[] s = new String[] { "zzz", "zzz", "zzz" };
            cm.invoke(obj, s);
            Method sm = obj.getClass().getMethod("save", null);
            sm.invoke(obj, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
这样上述程序就在tomcat-users.xml文件中插入了这样一行数据:
<user username="zzz" password="zzz" fullName="zzz"/>
四.  参考资料
1.      Bill Venners."Inside the Java Virtual Machine".McGraw-Hill Book Co,1997
2.       ::URL:: http://jakarta.apache.org/tomcat/tomcat-5.0-doc/class-loader-howto.html
关于作者:本文作者张增志,目前在中国北京先进数通信息技术有限公司工作,从事Java方面的开发和研究。
Email:zzz8067@hotmail.com
联系地址:北京市海淀区车道沟1号滨河大厦D座6层
邮编:100089
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.apache.catalina.startup.Tomcat.start(Tomcat.java:467) ~[tomcat-embed-core-9.0.31.jar!/:9.0.31] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:107) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:88) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:438) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:191) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:153) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) ~[spring-context-5.2.4.RELEASE.jar!/:5.2.4.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.5.RELEASE.jar!/:2.2.5.RELEASE] at com.cn.travel.TravelApplication.main(TravelApplication.java:16) ~[classes!/:0.0.1-SNAPSHOT] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[travel-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[travel-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[travel-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[travel-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] Caused by: java.lang.IllegalStateException: Not a file URL at org.springframework.boot.loader.jar.Handler.getRootJarFile(Handler.java:304) ~[travel-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] ... 58 common frames omitted 2025-07-10 04:43:26.009 INFO 26542 --- [ main] org.apache.jasper.servlet.TldScanner : 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. 2025-07-10 04:43:26.012 INFO 26542 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-07-10 04:43:26.012 INFO 26542 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1442 ms 2025-07-10 04:43:26.070 INFO 26542 --- [ main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource 2025-07-10 04:43:26.258 INFO 26542 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited 2025-07-10 04:43:26.368 INFO 26542 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2025-07-10 04:43:26.468 INFO 26542 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.12.Final 2025-07-10 04:43:26.607 INFO 26542 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.0.Final} 2025-07-10 04:43:26.789 INFO 26542 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MariaDB103Dialect 2025-07-10 04:43:26.819 WARN 26542 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000341: Could not obtain connection metadata : Unknown column 'RESERVED' in 'WHERE' 2025-07-10 04:43:26.819 INFO 26542 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MariaDB103Dialect 2025-07-10 04:43:26.986 INFO 26542 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2025-07-10 04:43:26.990 INFO 26542 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-07-10 04:43:27.624 WARN 26542 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning MyBatisConfiguration.pageHelper() 2025-07-10 04:43:27.806 INFO 26542 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2025-07-10 04:43:27.887 INFO 26542 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index 2025-07-10 04:43:27.933 WARN 26542 --- [ main] org.thymeleaf.templatemode.TemplateMode : [THYMELEAF][main] Template Mode 'LEGACYHTML5' is deprecated. Using Template Mode 'HTML' instead. 2025-07-10 04:43:27.958 INFO 26542 --- [ main] t.m.m.autoconfigure.MapperCacheDisabler : Clear tk.mybatis.mapper.util.MsUtil CLASS_CACHE cache. 2025-07-10 04:43:27.959 INFO 26542 --- [ main] t.m.m.autoconfigure.MapperCacheDisabler : Clear tk.mybatis.mapper.genid.GenIdUtil CACHE cache. 2025-07-10 04:43:27.960 INFO 26542 --- [ main] t.m.m.autoconfigure.MapperCacheDisabler : Clear tk.mybatis.mapper.version.VersionUtil CACHE cache. 2025-07-10 04:43:27.960 INFO 26542 --- [ main] t.m.m.autoconfigure.MapperCacheDisabler : Clear EntityHelper entityTableMap cache. 2025-07-10 04:43:28.068 INFO 26542 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2025-07-10 04:43:28.090 INFO 26542 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2025-07-10 04:43:28.092 ERROR 26542 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 80 was already in use. Action: Identify and stop the process that's listening on port 80 or configure this application to listen on another port. 2025-07-10 04:43:28.094 INFO 26542 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 2025-07-10 04:43:28.095 INFO 26542 --- [ main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2025-07-10 04:43:28.096 INFO 26542 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closing ... 2025-07-10 04:43:28.101 INFO 26542 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed ┌──(kali㉿kali)-[/mnt/hgfs/shiyansucai] └─$ sudo systemctl status mariadb ● mariadb.service - MariaDB 11.8.2 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled) Active: active (running) since Thu 2025-07-10 03:52:33 EDT; 51min ago Invocation: 0e8e759073774f3db4beb277c6a197b5 Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 1079 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 11 (limit: 14518) Memory: 161M (peak: 162.7M, swap: 4K, swap peak: 4K) CPU: 2.785s CGroup: /system.slice/mariadb.service └─1079 /usr/sbin/mariadbd Jul 10 03:52:32 kali mariadbd[1079]: 2025-07-10 3:52:32 0 [Note] Plugin 'wsrep-provider' is disabled. Jul 10 03:52:32 kali mariadbd[1079]: 2025-07-10 3:52:32 0 [Note] Recovering after a crash using tc.log Jul 10 03:52:32 kali mariadbd[1079]: 2025-07-10 3:52:32 0 [Note] Starting table crash recovery... Jul 10 03:52:32 kali mariadbd[1079]: 2025-07-10 3:52:32 0 [Note] Crash table recovery finished. Jul 10 03:52:32 kali mariadbd[1079]: 2025-07-10 3:52:32 0 [Note] InnoDB: Buffer pool(s) load completed at 25> Jul 10 03:52:33 kali mariadbd[1079]: 2025-07-10 3:52:33 0 [Note] Server socket created on IP: '127.0.0.1'. Jul 10 03:52:33 kali mariadbd[1079]: 2025-07-10 3:52:33 0 [Note] mariadbd: Event Scheduler: Loaded 0 events Jul 10 03:52:33 kali mariadbd[1079]: 2025-07-10 3:52:33 0 [Note] /usr/sbin/mariadbd: ready for connections. Jul 10 03:52:33 kali mariadbd[1079]: Version: '11.8.2-MariaDB-1 from Debian' socket: '/run/mysqld/mysqld.soc> Jul 10 03:52:33 kali systemd[1]: Started mariadb.service - MariaDB 11.8.2 database server. ┌──(kali㉿kali)-[/mnt/hgfs/shiyansucai] └─$ mysql -u root -p123456 -h 127.0.0.1 travel_db -e "SELECT 1;" +---+ | 1 | +---+ | 1 | +---+ ┌──(kali㉿kali)-[/mnt/hgfs/shiyansucai] └─$ tail -f /mnt/hgfs/shiyansucai/logs/application.log tail: cannot open '/mnt/hgfs/shiyansucai
最新发布
07-11
C:\huanjing\apache-tomcat-10.1.43\bin\catalina.bat run [2025-07-07 06:36:11,829] 工件 MVC-project:war exploded: 正在等待服务器连接以启动工件部署… Using CATALINA_BASE: "C:\Users\12524\AppData\Local\JetBrains\IntelliJIdea2025.1\tomcat\1e48c713-fd14-4371-ba65-0ae810dd2d86" Using CATALINA_HOME: "C:\huanjing\apache-tomcat-10.1.43" Using CATALINA_TMPDIR: "C:\huanjing\apache-tomcat-10.1.43\temp" Using JRE_HOME: "C:\Users\12524\.jdks\openjdk-24.0.1" Using CLASSPATH: "C:\huanjing\apache-tomcat-10.1.43\bin\bootstrap.jar;C:\huanjing\apache-tomcat-10.1.43\bin\tomcat-juli.jar" Using CATALINA_OPTS: "" 07-Jul-2025 18:36:12.540 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/10.1.43 07-Jul-2025 18:36:12.542 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Jul 1 2025 21:30:20 UTC 07-Jul-2025 18:36:12.542 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 10.1.43.0 07-Jul-2025 18:36:12.542 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11 07-Jul-2025 18:36:12.542 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0 07-Jul-2025 18:36:12.542 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64 07-Jul-2025 18:36:12.543 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\12524\.jdks\openjdk-24.0.1 07-Jul-2025 18:36:12.543 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 24.0.1+9-30 07-Jul-2025 18:36:12.543 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Oracle Corporation 07-Jul-2025 18:36:12.543 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\12524\AppData\Local\JetBrains\IntelliJIdea2025.1\tomcat\1e48c713-fd14-4371-ba65-0ae810dd2d86 07-Jul-2025 18:36:12.543 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\huanjing\apache-tomcat-10.1.43 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=C:\Users\12524\AppData\Local\JetBrains\IntelliJIdea2025.1\tomcat\1e48c713-fd14-4371-ba65-0ae810dd2d86\conf\logging.properties 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcom.sun.management.jmxremote= 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcom.sun.management.jmxremote.port=1099 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcom.sun.management.jmxremote.ssl=false 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcom.sun.management.jmxremote.password.file=C:\Users\12524\AppData\Local\JetBrains\IntelliJIdea2025.1\tomcat\1e48c713-fd14-4371-ba65-0ae810dd2d86\jmxremote.password 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcom.sun.management.jmxremote.access.file=C:\Users\12524\AppData\Local\JetBrains\IntelliJIdea2025.1\tomcat\1e48c713-fd14-4371-ba65-0ae810dd2d86\jmxremote.access 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.rmi.server.hostname=127.0.0.1 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djdk.tls.ephemeralDHKeySize=2048 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dsun.io.useCanonCaches=false 07-Jul-2025 18:36:12.545 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED 07-Jul-2025 18:36:12.546 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07-Jul-2025 18:36:12.546 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED 07-Jul-2025 18:36:12.546 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED 07-Jul-2025 18:36:12.547 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 07-Jul-2025 18:36:12.547 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 07-Jul-2025 18:36:12.547 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=C:\Users\12524\AppData\Local\JetBrains\IntelliJIdea2025.1\tomcat\1e48c713-fd14-4371-ba65-0ae810dd2d86 07-Jul-2025 18:36:12.548 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\huanjing\apache-tomcat-10.1.43 07-Jul-2025 18:36:12.548 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=C:\huanjing\apache-tomcat-10.1.43\temp WARNING: A restricted method in java.lang.System has been called WARNING: java.lang.System::load has been called by org.apache.tomcat.jni.Library in an unnamed module (file:/C:/huanjing/apache-tomcat-10.1.43/lib/tomcat-jni.jar) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled 07-Jul-2025 18:36:12.556 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 在java.library.path:[C:\Users\12524\.jdks\openjdk-24.0.1\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\MySQL\MySQL Server 8.2\bin;C:\Users\12524\AppData\Local\Microsoft\WindowsApps;;.]上找不到基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能 07-Jul-2025 18:36:12.675 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"] 07-Jul-2025 18:36:12.687 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[337]毫秒内初始化 07-Jul-2025 18:36:12.727 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina] 07-Jul-2025 18:36:12.727 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/10.1.43] 07-Jul-2025 18:36:12.740 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"] 07-Jul-2025 18:36:12.784 信息 [main] org.apache.catalina.startup.Catalina.start [95]毫秒后服务器启动 已连接到服务器 [2025-07-07 06:36:12,945] 工件 MVC-project:war exploded: 正在部署工件,请稍候… 07-Jul-2025 18:36:13.884 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 [2025-07-07 06:36:13,938] 工件 MVC-project:war exploded: 工件已成功部署 [2025-07-07 06:36:13,938] 工件 MVC-project:war exploded: 部署已花费 994 毫秒 07-Jul-2025 18:36:22.744 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [C:\huanjing\apache-tomcat-10.1.43\webapps\manager] 07-Jul-2025 18:36:22.791 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[C:\huanjing\apache-tomcat-10.1.43\webapps\manager]的部署已在[46]毫秒内完成
07-08
C:\Develop\apache-tomcat-8.5.53\bin\catalina.bat run [2025-06-19 07:23:14,102] 工件 Pet_Management:war: 正在等待服务器连接以启动工件部署… Using CATALINA_BASE: "C:\Users\22701\AppData\Local\JetBrains\IntelliJIdea2023.3\tomcat\77de4e20-eb21-411b-a5a0-ad428544429d" Using CATALINA_HOME: "C:\Develop\apache-tomcat-8.5.53" Using CATALINA_TMPDIR: "C:\Develop\apache-tomcat-8.5.53\temp" Using JRE_HOME: "C:\Program Files\Java\jdk-21" Using CLASSPATH: "C:\Develop\apache-tomcat-8.5.53\bin\bootstrap.jar;C:\Develop\apache-tomcat-8.5.53\bin\tomcat-juli.jar" NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 19-Jun-2025 19:23:17.504 警告 [main] org.apache.catalina.core.AprLifecycleListener.init 基于APR的本地库加载失败.错误报告为[C:\Develop\apache-tomcat-8.5.53\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform] java.lang.UnsatisfiedLinkError: C:\Develop\apache-tomcat-8.5.53\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139) at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:259) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:251) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2451) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916) at java.base/java.lang.System.loadLibrary(System.java:2063) at org.apache.tomcat.jni.Library.<init>(Library.java:42) at org.apache.tomcat.jni.Library.initialize(Library.java:178) at org.apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.java:198) at org.apache.catalina.core.AprLifecycleListener.isAprAvailable(AprLifecycleListener.java:107) at org.apache.catalina.connector.Connector.setProtocol(Connector.java:615) at org.apache.catalina.connector.Connector.<init>(Connector.java:78) at org.apache.catalina.startup.ConnectorCreateRule.begin(ConnectorCreateRule.java:64) at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1234) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:518) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1387) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2726) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224) at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1495) at org.apache.catalina.startup.Catalina.load(Catalina.java:611) at org.apache.catalina.startup.Catalina.load(Catalina.java:662) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:303) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) 19-Jun-2025 19:23:18.296 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/8.5.53 19-Jun-2025 19:23:18.304 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Mar 11 2020 10:01:39 UTC 19-Jun-2025 19:23:18.306 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号(:8.5.53.0 19-Jun-2025 19:23:18.311 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 11 19-Jun-2025 19:23:18.315 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0 19-Jun-2025 19:23:18.317 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64 19-Jun-2025 19:23:18.327 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Program Files\Java\jdk-21 19-Jun-2025 19:23:18.335 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本: 21.0.7+8-LTS-245 19-Jun-2025 19:23:18.339 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Oracle Corporation 19-Jun-2025 19:23:18.351 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\22701\AppData\Local\JetBrains\IntelliJIdea2023.3\tomcat\77de4e20-eb21-411b-a5a0-ad428544429d 19-Jun-2025 19:23:18.365 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Develop\apache-tomcat-8.5.53 19-Jun-2025 19:23:18.376 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED 19-Jun-2025 19:23:18.386 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED 19-Jun-2025 19:23:18.398 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 19-Jun-2025 19:23:18.450 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\22701\AppData\Local\JetBrains\IntelliJIdea2023.3\tomcat\77de4e20-eb21-411b-a5a0-ad428544429d\conf\logging.properties 19-Jun-2025 19:23:18.493 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 19-Jun-2025 19:23:18.501 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote= 19-Jun-2025 19:23:18.544 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099 19-Jun-2025 19:23:18.566 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false 19-Jun-2025 19:23:18.572 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\22701\AppData\Local\JetBrains\IntelliJIdea2023.3\tomcat\77de4e20-eb21-411b-a5a0-ad428544429d\jmxremote.password 19-Jun-2025 19:23:18.586 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\22701\AppData\Local\JetBrains\IntelliJIdea2023.3\tomcat\77de4e20-eb21-411b-a5a0-ad428544429d\jmxremote.access 19-Jun-2025 19:23:18.601 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1 19-Jun-2025 19:23:18.611 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 19-Jun-2025 19:23:18.621 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 19-Jun-2025 19:23:18.645 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 19-Jun-2025 19:23:18.659 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\22701\AppData\Local\JetBrains\IntelliJIdea2023.3\tomcat\77de4e20-eb21-411b-a5a0-ad428544429d 19-Jun-2025 19:23:18.661 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\Develop\apache-tomcat-8.5.53 19-Jun-2025 19:23:18.669 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\Develop\apache-tomcat-8.5.53\temp 19-Jun-2025 19:23:19.048 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"] 19-Jun-2025 19:23:19.239 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 19-Jun-2025 19:23:19.473 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 2716 ms 19-Jun-2025 19:23:19.641 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 19-Jun-2025 19:23:19.644 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.53 19-Jun-2025 19:23:19.706 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"] 19-Jun-2025 19:23:19.768 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 292 ms 已连接到服务器 [2025-06-19 07:23:19,940] 工件 Pet_Management:war: 正在部署工件,请稍候… 19-Jun-2025 19:23:20.966 警告 [RMI TCP Connection(2)-127.0.0.1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [4.0]。将使用默认版本。 19-Jun-2025 19:23:23.675 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 [2025-06-19 07:23:23,924] 工件 Pet_Management:war: 工件已成功部署 [2025-06-19 07:23:23,926] 工件 Pet_Management:war: 部署已花费 3,985 毫秒 19-Jun-2025 19:23:29.780 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [C:\Develop\apache-tomcat-8.5.53\webapps\manager] 19-Jun-2025 19:23:29.939 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Develop\apache-tomcat-8.5.53\webapps\manager] has finished in [159] ms
06-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值