1.创建一个名为 tomcat-mysql 的项目目录
bash
[root@host1 ~]# mkdir -p /root/projects
[root@host1 ~]# cd /root/projects
[root@host1 projects]# mkdir tomcat-mysql
[root@host1 projects]# ls | grep tomcat-mysql
tomcat-mysql
2.准备配套的应用程序文件
bash
[root@host1 tomcat-mysql]# mkdir -p dbinit tomcat/webapps/example-webapp/META-INF tomcat/webapps/example-webapp/WEB-INF/lib
[root@host1 tomcat-mysql]# tree .
.
├── dbinit
└── tomcat
└── webapps
└── example-webapp
├── META-INF
└── WEB-INF
└── lib
7 directories, 0 files
3.在项目目录下编写名为 compose.yaml 的 Compose 文件
bash
[root@host1 tomcat-mysql]# vi docker-compose.yaml
[root@host1 tomcat-mysql]# cat docker-compose.yaml
version: '3.8'
services:
# 1. MySQL 服务(自动执行初始化脚本)
mysql:
image: mysql:8.0 # 与 MySQL 驱动版本匹配(8.0.28 驱动适配 MySQL 8.0)
container_name: tomcat-mysql-db
environment:
MYSQL_ROOT_PASSWORD: 123456 # 与 context.xml 中的 password 一致
MYSQL_DATABASE: example_db # 与 context.xml 中的数据库名一致
volumes:
# 挂载初始化 SQL 脚本,MySQL 启动时自动执行(创建表和测试数据)
- ./dbinit/mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql
# 挂载数据卷,持久化 MySQL 数据(重启容器数据不丢失)
- mysql-data:/var/lib/mysql
networks:
- tomcat-mysql-net # 自定义网络,让 Tomcat 能通过容器名访问 MySQL
restart: always # 容器异常时自动重启
# 2. Tomcat 服务(挂载 Web 应用、MySQL 驱动)
tomcat:
image: tomcat:9-jdk11 # Tomcat 9 + JDK 11(适配 Java Web 应用)
container_name: tomcat-server
ports:
- "8080:8080" # 暴露 8080 端口,外部可访问
volumes:
# 挂载 Web 应用到 Tomcat 的 webapps 目录(容器内路径固定)
- ./tomcat/webapps/example-webapp:/usr/local/tomcat/webapps/example-webapp
# 挂载 MySQL 驱动到 Tomcat 容器的 lib 目录(解决驱动加载问题!)
- ./tomcat/webapps/example-webapp/WEB-INF/lib/mysql-connector-java-8.0.28.jar:/usr/local/tomcat/lib/mysql-connector-java-8.0.28.jar
# 可选:挂载 Tomcat 全局配置(如需自定义 server.xml 等)
# - ./tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
depends_on:
- mysql # 确保 MySQL 先启动,再启动 Tomcat(避免连接失败)
networks:
- tomcat-mysql-net
restart: always
# 定义网络(隔离项目网络,避免与其他容器冲突)
networks:
tomcat-mysql-net:
driver: bridge
# 定义数据卷(持久化 MySQL 数据)
volumes:
mysql-data:
4.启动整个应用程序
bash
[root@host1 tomcat-mysql]# docker compose up
WARN[0000] /root/projects/tomcat-mysql/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 21/21
✔ mysql Pulled 84.0s
✔ 500d7b2546c4 Already exists 0.0s
✔ 48934deb9770 Pull complete 19.4s
✔ 021b6107b9d0 Pull complete 23.2s
✔ 13ed16089ebc Pull complete 27.2s
✔ e32dcaa70f77 Pull complete 27.3s
✔ 72a465986d66 Pull complete 27.6s
✔ 27fa9cc59961 Pull complete 35.7s
✔ 8a27c0ce790f Pull complete 35.7s
✔ 390885da77e4 Pull complete 78.4s
✔ 1ca2ca504238 Pull complete 78.4s
✔ d8f78235dcb8 Pull complete 78.4s
✔ tomcat Pulled 38.7s
✔ 953cdd413371 Pull complete 14.7s
✔ 1eb43857d530 Pull complete 17.6s
✔ 30e90268e187 Pull complete 32.1s
✔ 4fcf4bcc7c79 Pull complete 32.1s
✔ c530a0862e0f Pull complete 32.1s
✔ d195232c3796 Pull complete 32.1s
✔ 4f4fb700ef54 Pull complete 32.2s
✔ 9f44622f62da Pull complete 33.1s
[+] Running 4/4
✔ Network tomcat-mysql_tomcat-mysql-net Created 0.1s
✔ Volume "tomcat-mysql_mysql-data" Created 0.0s
✔ Container tomcat-mysql-db Created 1.4s
✔ Container tomcat-server Created 0.0s
Attaching to tomcat-mysql-db, tomcat-server
tomcat-mysql-db | 2025-09-22 02:11:40+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.43-1.el9 started.
tomcat-server | NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
tomcat-mysql-db | 2025-09-22 02:11:41+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
tomcat-mysql-db | 2025-09-22 02:11:41+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.43-1.el9 started.
tomcat-mysql-db | 2025-09-22 02:11:41+00:00 [Note] [Entrypoint]: Initializing database files
tomcat-mysql-db | 2025-09-22T02:11:41.725897Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
tomcat-mysql-db | 2025-09-22T02:11:41.726270Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.43) initializing of server in progress as process 80
tomcat-mysql-db | 2025-09-22T02:11:41.747515Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
tomcat-server | 22-Sep-2025 02:11:42.465 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.109
tomcat-server | 22-Sep-2025 02:11:42.475 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 1 2025 12:15:33 UTC
tomcat-server | 22-Sep-2025 02:11:42.476 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.109.0
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.14.0-611.el9.x86_64
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
tomcat-server | 22-Sep-2025 02:11:42.478 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.28+6
tomcat-server | 22-Sep-2025 02:11:42.478 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
tomcat-server | 22-Sep-2025 02:11:42.479 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.479 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.508 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.509 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.509 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.510 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.510 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
tomcat-server | 22-Sep-2025 02:11:42.511 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
tomcat-server | 22-Sep-2025 02:11:42.511 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
tomcat-server | 22-Sep-2025 02:11:42.512 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
tomcat-server | 22-Sep-2025 02:11:42.512 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
tomcat-server | 22-Sep-2025 02:11:42.513 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
tomcat-server | 22-Sep-2025 02:11:42.513 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
tomcat-server | 22-Sep-2025 02:11:42.514 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.514 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.514 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
tomcat-server | 22-Sep-2025 02:11:42.529 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
tomcat-server | 22-Sep-2025 02:11:42.529 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
tomcat-server | 22-Sep-2025 02:11:42.530 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
tomcat-server | 22-Sep-2025 02:11:42.547 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
tomcat-server | 22-Sep-2025 02:11:43.717 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
tomcat-server | 22-Sep-2025 02:11:43.786 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1940] milliseconds
tomcat-mysql-db | 2025-09-22T02:11:43.804662Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
tomcat-server | 22-Sep-2025 02:11:43.958 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
tomcat-server | 22-Sep-2025 02:11:43.959 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.109]
tomcat-server | 22-Sep-2025 02:11:43.983 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
tomcat-server | 22-Sep-2025 02:11:44.027 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [6] column [46]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1433)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1362)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.034 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying deployment descriptor [/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.120 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [6] column [46]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1433)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1362)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
tomcat-server | at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
tomcat-server | at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
tomcat-server | at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
tomcat-server | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
tomcat-server | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.123 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for [/example-webapp]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1433)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1362)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
tomcat-server | at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
tomcat-server | at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
tomcat-server | at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
tomcat-server | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
tomcat-server | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.124 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Occurred at line [6] column [46]
tomcat-server | 22-Sep-2025 02:11:44.131 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
tomcat-server | java.lang.IllegalStateException: Error starting child
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
tomcat-server | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/example-webapp] Context cannot be started.
tomcat-server | at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:229)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
tomcat-server | ... 37 more
tomcat-server | 22-Sep-2025 02:11:44.135 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/example-webapp] has finished in [150] ms
tomcat-server | 22-Sep-2025 02:11:44.145 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
tomcat-server | 22-Sep-2025 02:11:44.190 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [403] milliseconds
tomcat-mysql-db | 2025-09-22T02:11:46.206917Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
tomcat-mysql-db | 2025-09-22 02:11:50+00:00 [Note] [Entrypoint]: Database files initialized
tomcat-mysql-db | 2025-09-22 02:11:50+00:00 [Note] [Entrypoint]: Starting temporary server
tomcat-mysql-db | 2025-09-22T02:11:51.691048Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
tomcat-mysql-db | 2025-09-22T02:11:51.728061Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.43) starting as process 124
tomcat-mysql-db | 2025-09-22T02:11:51.770579Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
tomcat-mysql-db | 2025-09-22T02:11:53.055068Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
tomcat-mysql-db | 2025-09-22T02:11:54.290018Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
tomcat-mysql-db | 2025-09-22T02:11:54.290155Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
tomcat-mysql-db | 2025-09-22T02:11:54.297882Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
tomcat-mysql-db | 2025-09-22T02:11:54.349742Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock
tomcat-mysql-db | 2025-09-22T02:11:54.350278Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.43' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
tomcat-mysql-db | 2025-09-22 02:11:54+00:00 [Note] [Entrypoint]: Temporary server started.
tomcat-mysql-db | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
tomcat-mysql-db | 2025-09-22 02:12:00+00:00 [Note] [Entrypoint]: Creating database example_db
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22 02:12:00+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/mysql-init.sql
tomcat-mysql-db | idusernameagecreate_time
tomcat-mysql-db | 1Alice222025-09-22 02:12:00
tomcat-mysql-db | 2Bob252025-09-22 02:12:00
tomcat-mysql-db | 3Charlie282025-09-22 02:12:00
tomcat-mysql-db |
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22 02:12:00+00:00 [Note] [Entrypoint]: Stopping temporary server
tomcat-mysql-db | 2025-09-22T02:12:00.726113Z 12 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.43).
tomcat-mysql-db | 2025-09-22T02:12:02.241898Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.43) MySQL Community Server - GPL.
tomcat-mysql-db | 2025-09-22 02:12:02+00:00 [Note] [Entrypoint]: Temporary server stopped
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22 02:12:02+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22T02:12:03.171632Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
tomcat-mysql-db | 2025-09-22T02:12:03.173878Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.43) starting as process 1
tomcat-mysql-db | 2025-09-22T02:12:03.193609Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
tomcat-mysql-db | 2025-09-22T02:12:03.509562Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
tomcat-mysql-db | 2025-09-22T02:12:04.060983Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
tomcat-mysql-db | 2025-09-22T02:12:04.061122Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
tomcat-mysql-db | 2025-09-22T02:12:04.064970Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
tomcat-mysql-db | 2025-09-22T02:12:04.134686Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
tomcat-mysql-db | 2025-09-22T02:12:04.136485Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.43' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
bash
[root@host1 tomcat-mysql]# docker compose ps
WARN[0000] /root/projects/tomcat-mysql/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
tomcat-mysql-db mysql:8.0 "docker-entrypoint.s..." mysql 14 seconds ago Up 14 seconds 3306/tcp, 33060/tcp
tomcat-server tomcat:9-jdk11 "catalina.sh run" tomcat 14 seconds ago Up 14 seconds 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp
[root@host1 tomcat-mysql]# docker logs -f tomcat-server
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:19:24.180 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.109
22-Sep-2025 02:19:24.190 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 1 2025 12:15:33 UTC
22-Sep-2025 02:19:24.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.109.0
22-Sep-2025 02:19:24.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
22-Sep-2025 02:19:24.192 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.14.0-611.el9.x86_64
22-Sep-2025 02:19:24.192 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Sep-2025 02:19:24.193 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
22-Sep-2025 02:19:24.193 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.28+6
22-Sep-2025 02:19:24.194 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
22-Sep-2025 02:19:24.194 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
22-Sep-2025 02:19:24.195 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
22-Sep-2025 02:19:24.215 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
22-Sep-2025 02:19:24.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
22-Sep-2025 02:19:24.217 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
22-Sep-2025 02:19:24.218 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
22-Sep-2025 02:19:24.218 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
22-Sep-2025 02:19:24.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
22-Sep-2025 02:19:24.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
22-Sep-2025 02:19:24.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
22-Sep-2025 02:19:24.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
22-Sep-2025 02:19:24.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
22-Sep-2025 02:19:24.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
22-Sep-2025 02:19:24.242 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
22-Sep-2025 02:19:25.075 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:19:25.132 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1446] milliseconds
22-Sep-2025 02:19:25.260 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
22-Sep-2025 02:19:25.261 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.109]
22-Sep-2025 02:19:25.278 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
22-Sep-2025 02:19:25.315 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [9] column [76]
org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.320 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying deployment descriptor [/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml]
org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.364 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [9] column [76]
org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.368 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for [/example-webapp]
org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.374 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Occurred at line [9] column [76]
22-Sep-2025 02:19:25.376 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/example-webapp] Context cannot be started.
at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:229)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
... 37 more
22-Sep-2025 02:19:25.381 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/example-webapp] has finished in [102] ms
22-Sep-2025 02:19:25.395 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:19:25.424 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [291] milliseconds
cd /root/projects/tomcat-mysql
^C[root@host1 tomcat-mysql]#
[root@host1 tomcat-mysql]# docker logs -f tomcat-server
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:19:24.180 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.109
22-Sep-2025 02:19:24.190 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 1 2025 12:15:33 UTC
22-Sep-2025 02:19:24.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.109.0
22-Sep-2025 02:19:24.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
22-Sep-2025 02:19:24.192 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.14.0-611.el9.x86_64
22-Sep-2025 02:19:24.192 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Sep-2025 02:19:24.193 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
22-Sep-2025 02:19:24.193 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.28+6
22-Sep-2025 02:19:24.194 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
22-Sep-2025 02:19:24.194 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
22-Sep-2025 02:19:24.195 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
22-Sep-2025 02:19:24.215 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
22-Sep-2025 02:19:24.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
22-Sep-2025 02:19:24.217 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
22-Sep-2025 02:19:24.218 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
22-Sep-2025 02:19:24.218 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
22-Sep-2025 02:19:24.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
22-Sep-2025 02:19:24.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
22-Sep-2025 02:19:24.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
22-Sep-2025 02:19:24.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
22-Sep-2025 02:19:24.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
22-Sep-2025 02:19:24.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
22-Sep-2025 02:19:24.242 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
22-Sep-2025 02:19:25.075 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:19:25.132 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1446] milliseconds
22-Sep-2025 02:19:25.260 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
22-Sep-2025 02:19:25.261 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.109]
22-Sep-2025 02:19:25.278 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
22-Sep-2025 02:19:25.315 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [9] column [76]
org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.320 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying deployment descriptor [/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml]
org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.364 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [9] column [76]
org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.368 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for [/example-webapp]
org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.374 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Occurred at line [9] column [76]
22-Sep-2025 02:19:25.376 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/example-webapp] Context cannot be started.
at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:229)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
... 37 more
22-Sep-2025 02:19:25.381 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/example-webapp] has finished in [102] ms
22-Sep-2025 02:19:25.395 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:19:25.424 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [291] milliseconds
^C[root@host1 tomcat-mysql]#
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/META-INF/context.xml
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/META-INF/context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true">
<Resource
name="jdbc/ExampleDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://mysql:3306/example_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"
username="root"
password="123456"
maxTotal="100"
maxIdle="20"
minIdle="5"
maxWaitMillis="10000"
/>
</Context>
[root@host1 tomcat-mysql]# vi docker-compose.yaml
[root@host1 tomcat-mysql]# cat docker-compose.yaml
services:
# 1. MySQL 服务(自动执行初始化脚本)
mysql:
image: mysql:8.0 # 与 MySQL 驱动版本匹配(8.0.28 驱动适配 MySQL 8.0)
container_name: tomcat-mysql-db
environment:
MYSQL_ROOT_PASSWORD: 123456 # 与 context.xml 中的 password 一致
MYSQL_DATABASE: example_db # 与 context.xml 中的数据库名一致
volumes:
# 挂载初始化 SQL 脚本,MySQL 启动时自动执行(创建表和测试数据)
- ./dbinit/mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql
# 挂载数据卷,持久化 MySQL 数据(重启容器数据不丢失)
- mysql-data:/var/lib/mysql
networks:
- tomcat-mysql-net # 自定义网络,让 Tomcat 能通过容器名访问 MySQL
restart: always # 容器异常时自动重启
# 2. Tomcat 服务(挂载 Web 应用、MySQL 驱动)
tomcat:
image: tomcat:9-jdk11 # Tomcat 9 + JDK 11(适配 Java Web 应用)
container_name: tomcat-server
ports:
- "8080:8080" # 暴露 8080 端口,外部可访问
volumes:
# 挂载 Web 应用到 Tomcat 的 webapps 目录(容器内路径固定)
- ./tomcat/webapps/example-webapp:/usr/local/tomcat/webapps/example-webapp
# 挂载 MySQL 驱动到 Tomcat 容器的 lib 目录(解决驱动加载问题!)
- ./tomcat/webapps/example-webapp/WEB-INF/lib/mysql-connector-java-8.0.28.jar:/usr/local/tomcat/lib/mysql-connector-java-8.0.28.jar
# 可选:挂载 Tomcat 全局配置(如需自定义 server.xml 等)
# - ./tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
depends_on:
- mysql # 确保 MySQL 先启动,再启动 Tomcat(避免连接失败)
networks:
- tomcat-mysql-net
restart: always
# 定义网络(隔离项目网络,避免与其他容器冲突)
networks:
tomcat-mysql-net:
driver: bridge
# 定义数据卷(持久化 MySQL 数据)
volumes:
mysql-data:
5.在浏览器访问 http://127.0.0.1:8080/example-webapp 进行测试


6.实验完毕,停止执行该 Compose 应用程序并清理上述项目
全过程代码:
bash
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Sun Sep 21 22:32:08 2025 from 192.168.197.1
[root@host1 ~]# cd /root/projects
-bash: cd: /root/projects: 没有那个文件或目录
[root@host1 ~]# mkdir -p /root/projects
[root@host1 ~]# cd /root/projects
[root@host1 projects]# mkdir tomcat-mysql
[root@host1 projects]# ls | grep tomcat-mysql
tomcat-mysql
[root@host1 projects]# cd tomcat-mysql
[root@host1 tomcat-mysql]# cd
[root@host1 ~]# tree tomcat-mysql
tomcat-mysql [error opening dir]
0 directories, 0 files
[root@host1 ~]# cd /root/projects
[root@host1 projects]# cd tomcat-mysql
[root@host1 tomcat-mysql]# tree tomcat-mysql
tomcat-mysql [error opening dir]
0 directories, 0 files
[root@host1 tomcat-mysql]# mkdir -p dbinit tomcat/webapps/example-webapp/META-INF tomcat/webapps/example-webapp/WEB-INF/lib
[root@host1 tomcat-mysql]# tree .
.
├── dbinit
└── tomcat
└── webapps
└── example-webapp
├── META-INF
└── WEB-INF
└── lib
7 directories, 0 files
[root@host1 tomcat-mysql]# vi dbinit/mysql-init.sql
[root@host1 tomcat-mysql]# cat dbinit/mysql-init.sql
-- 1. 创建数据库(名称需与JNDI配置中的URL一致,本例用 example_db)
CREATE DATABASE IF NOT EXISTS example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. 使用数据库
USE example_db;
-- 3. 创建测试表(user表,用于JDBC查询)
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`age` INT COMMENT '年龄',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试用户表';
-- 4. 插入测试数据
INSERT INTO `user` (username, age) VALUES
('Alice', 22),
('Bob', 25),
('Charlie', 28);
-- 验证数据
SELECT * FROM `user`;
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/META-INF/context.xml
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/META-INF/context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true"> <!-- reloadable="true":修改配置后Tomcat自动重载 -->
<!-- 配置JNDI数据源:name="jdbc/ExampleDB" 是数据源的JNDI名称,后续JSP通过此名称查找 -->
<Resource
name="jdbc/ExampleDB" <!-- JNDI名称(自定义,后续JSP需对应) -->
auth="Container" <!-- 认证方式:由Tomcat容器管理 -->
type="javax.sql.DataSource" <!-- 资源类型:数据源 -->
driverClassName="com.mysql.cj.jdbc.Driver" <!-- MySQL 8.0+ 驱动类(注意是cj包下) -->
url="jdbc:mysql://mysql:3306/example_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" <!-- 数据库URL:mysql是服务名(Docker部署时用),example_db是库名 -->
username="root" <!-- 数据库用户名(根据实际MySQL配置,本例用root) -->
password="123456" <!-- 数据库密码(根据实际MySQL配置) -->
maxTotal="100" <!-- 连接池最大连接数 -->
maxIdle="20" <!-- 连接池最大空闲连接数 -->
minIdle="5" <!-- 连接池最小空闲连接数 -->
maxWaitMillis="10000" <!-- 获取连接的最大等待时间(毫秒) -->
/>
</Context>
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/WEB-INF/web.xml
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/WEB-INF/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_3_1.xsd"
version="3.1">
<!-- 1. 欢迎页:访问应用根路径时默认打开的页面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 2. 声明JNDI资源引用(与context.xml中的name对应) -->
<resource-ref>
<description>Example DB DataSource</description> <!-- 资源描述 -->
<res-ref-name>jdbc/ExampleDB</res-ref-name> <!-- 引用的JNDI名称(必须与context.xml一致 -->
<res-type>javax.sql.DataSource</res-type> <!-- 资源类型 -->
<res-auth>Container</res-auth> <!-- 认证方式(与context.xml一致) -->
</resource-ref>
</web-app>
[root@host1 tomcat-mysql]# cd tomcat/webapps/example-webapp/WEB-INF/lib
[root@host1 lib]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar
--2025-09-22 10:06:41-- https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar
正在解析主机 repo1.maven.org (repo1.maven.org)... 199.232.196.209, 199.232.192.209, 2a04:4e42:4c::209, ...
正在连接 repo1.maven.org (repo1.maven.org)|199.232.196.209|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2476480 (2.4M) [application/java-archive]
正在保存至: "mysql-connector-java-8.0.28.jar"
mysql-connector-java-8.0. 100%[==================================>] 2.36M 1.17MB/s 用时 2.0s
2025-09-22 10:06:45 (1.17 MB/s) - 已保存 "mysql-connector-java-8.0.28.jar" [2476480/2476480])
[root@host1 lib]# cp mysql-connector-java-8.0.28.jar /usr/local/tomcat/lib/
cp: 无法创建普通文件'/usr/local/tomcat/lib/': 没有那个文件或目录
[root@host1 lib]# cd /root/projects/tomcat-mysql
[root@host1 tomcat-mysql]# vi docker-compose.yaml
[root@host1 tomcat-mysql]# cat docker-compose.yaml
version: '3.8'
services:
# 1. MySQL 服务(自动执行初始化脚本)
mysql:
image: mysql:8.0 # 与 MySQL 驱动版本匹配(8.0.28 驱动适配 MySQL 8.0)
container_name: tomcat-mysql-db
environment:
MYSQL_ROOT_PASSWORD: 123456 # 与 context.xml 中的 password 一致
MYSQL_DATABASE: example_db # 与 context.xml 中的数据库名一致
volumes:
# 挂载初始化 SQL 脚本,MySQL 启动时自动执行(创建表和测试数据)
- ./dbinit/mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql
# 挂载数据卷,持久化 MySQL 数据(重启容器数据不丢失)
- mysql-data:/var/lib/mysql
networks:
- tomcat-mysql-net # 自定义网络,让 Tomcat 能通过容器名访问 MySQL
restart: always # 容器异常时自动重启
# 2. Tomcat 服务(挂载 Web 应用、MySQL 驱动)
tomcat:
image: tomcat:9-jdk11 # Tomcat 9 + JDK 11(适配 Java Web 应用)
container_name: tomcat-server
ports:
- "8080:8080" # 暴露 8080 端口,外部可访问
volumes:
# 挂载 Web 应用到 Tomcat 的 webapps 目录(容器内路径固定)
- ./tomcat/webapps/example-webapp:/usr/local/tomcat/webapps/example-webapp
# 挂载 MySQL 驱动到 Tomcat 容器的 lib 目录(解决驱动加载问题!)
- ./tomcat/webapps/example-webapp/WEB-INF/lib/mysql-connector-java-8.0.28.jar:/usr/local/tomcat/lib/mysql-connector-java-8.0.28.jar
# 可选:挂载 Tomcat 全局配置(如需自定义 server.xml 等)
# - ./tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
depends_on:
- mysql # 确保 MySQL 先启动,再启动 Tomcat(避免连接失败)
networks:
- tomcat-mysql-net
restart: always
# 定义网络(隔离项目网络,避免与其他容器冲突)
networks:
tomcat-mysql-net:
driver: bridge
# 定义数据卷(持久化 MySQL 数据)
volumes:
mysql-data:
[root@host1 tomcat-mysql]# url="jdbc:mysql://mysql:3306/example_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"
[root@host1 tomcat-mysql]# docker-compose up -d
bash: docker-compose: 未找到命令...
[root@host1 tomcat-mysql]# docker compose up
WARN[0000] /root/projects/tomcat-mysql/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 21/21
✔ mysql Pulled 84.0s
✔ 500d7b2546c4 Already exists 0.0s
✔ 48934deb9770 Pull complete 19.4s
✔ 021b6107b9d0 Pull complete 23.2s
✔ 13ed16089ebc Pull complete 27.2s
✔ e32dcaa70f77 Pull complete 27.3s
✔ 72a465986d66 Pull complete 27.6s
✔ 27fa9cc59961 Pull complete 35.7s
✔ 8a27c0ce790f Pull complete 35.7s
✔ 390885da77e4 Pull complete 78.4s
✔ 1ca2ca504238 Pull complete 78.4s
✔ d8f78235dcb8 Pull complete 78.4s
✔ tomcat Pulled 38.7s
✔ 953cdd413371 Pull complete 14.7s
✔ 1eb43857d530 Pull complete 17.6s
✔ 30e90268e187 Pull complete 32.1s
✔ 4fcf4bcc7c79 Pull complete 32.1s
✔ c530a0862e0f Pull complete 32.1s
✔ d195232c3796 Pull complete 32.1s
✔ 4f4fb700ef54 Pull complete 32.2s
✔ 9f44622f62da Pull complete 33.1s
[+] Running 4/4
✔ Network tomcat-mysql_tomcat-mysql-net Created 0.1s
✔ Volume "tomcat-mysql_mysql-data" Created 0.0s
✔ Container tomcat-mysql-db Created 1.4s
✔ Container tomcat-server Created 0.0s
Attaching to tomcat-mysql-db, tomcat-server
tomcat-mysql-db | 2025-09-22 02:11:40+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.43-1.el9 started.
tomcat-server | NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
tomcat-mysql-db | 2025-09-22 02:11:41+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
tomcat-mysql-db | 2025-09-22 02:11:41+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.43-1.el9 started.
tomcat-mysql-db | 2025-09-22 02:11:41+00:00 [Note] [Entrypoint]: Initializing database files
tomcat-mysql-db | 2025-09-22T02:11:41.725897Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
tomcat-mysql-db | 2025-09-22T02:11:41.726270Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.43) initializing of server in progress as process 80
tomcat-mysql-db | 2025-09-22T02:11:41.747515Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
tomcat-server | 22-Sep-2025 02:11:42.465 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.109
tomcat-server | 22-Sep-2025 02:11:42.475 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 1 2025 12:15:33 UTC
tomcat-server | 22-Sep-2025 02:11:42.476 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.109.0
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.14.0-611.el9.x86_64
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
tomcat-server | 22-Sep-2025 02:11:42.477 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
tomcat-server | 22-Sep-2025 02:11:42.478 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.28+6
tomcat-server | 22-Sep-2025 02:11:42.478 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
tomcat-server | 22-Sep-2025 02:11:42.479 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.479 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.508 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.509 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.509 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.510 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
tomcat-server | 22-Sep-2025 02:11:42.510 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
tomcat-server | 22-Sep-2025 02:11:42.511 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
tomcat-server | 22-Sep-2025 02:11:42.511 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
tomcat-server | 22-Sep-2025 02:11:42.512 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
tomcat-server | 22-Sep-2025 02:11:42.512 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
tomcat-server | 22-Sep-2025 02:11:42.513 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
tomcat-server | 22-Sep-2025 02:11:42.513 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
tomcat-server | 22-Sep-2025 02:11:42.514 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.514 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
tomcat-server | 22-Sep-2025 02:11:42.514 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
tomcat-server | 22-Sep-2025 02:11:42.529 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
tomcat-server | 22-Sep-2025 02:11:42.529 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
tomcat-server | 22-Sep-2025 02:11:42.530 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
tomcat-server | 22-Sep-2025 02:11:42.547 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
tomcat-server | 22-Sep-2025 02:11:43.717 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
tomcat-server | 22-Sep-2025 02:11:43.786 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1940] milliseconds
tomcat-mysql-db | 2025-09-22T02:11:43.804662Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
tomcat-server | 22-Sep-2025 02:11:43.958 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
tomcat-server | 22-Sep-2025 02:11:43.959 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.109]
tomcat-server | 22-Sep-2025 02:11:43.983 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
tomcat-server | 22-Sep-2025 02:11:44.027 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [6] column [46]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1433)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1362)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.034 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying deployment descriptor [/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.120 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [6] column [46]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1433)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1362)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
tomcat-server | at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
tomcat-server | at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
tomcat-server | at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
tomcat-server | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
tomcat-server | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.123 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for [/example-webapp]
tomcat-server | org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 6; columnNumber: 46; Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1433)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1362)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
tomcat-server | at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
tomcat-server | at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
tomcat-server | at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
tomcat-server | at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
tomcat-server | at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
tomcat-server | at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
tomcat-server | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | 22-Sep-2025 02:11:44.124 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Occurred at line [6] column [46]
tomcat-server | 22-Sep-2025 02:11:44.131 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
tomcat-server | java.lang.IllegalStateException: Error starting child
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
tomcat-server | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
tomcat-server | at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
tomcat-server | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
tomcat-server | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
tomcat-server | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
tomcat-server | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
tomcat-server | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
tomcat-server | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
tomcat-server | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
tomcat-server | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
tomcat-server | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tomcat-server | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
tomcat-server | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
tomcat-server | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
tomcat-server | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
tomcat-server | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tomcat-server | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tomcat-server | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
tomcat-server | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
tomcat-server | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
tomcat-server | Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/example-webapp] Context cannot be started.
tomcat-server | at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:229)
tomcat-server | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
tomcat-server | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
tomcat-server | ... 37 more
tomcat-server | 22-Sep-2025 02:11:44.135 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/example-webapp] has finished in [150] ms
tomcat-server | 22-Sep-2025 02:11:44.145 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
tomcat-server | 22-Sep-2025 02:11:44.190 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [403] milliseconds
tomcat-mysql-db | 2025-09-22T02:11:46.206917Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
tomcat-mysql-db | 2025-09-22 02:11:50+00:00 [Note] [Entrypoint]: Database files initialized
tomcat-mysql-db | 2025-09-22 02:11:50+00:00 [Note] [Entrypoint]: Starting temporary server
tomcat-mysql-db | 2025-09-22T02:11:51.691048Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
tomcat-mysql-db | 2025-09-22T02:11:51.728061Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.43) starting as process 124
tomcat-mysql-db | 2025-09-22T02:11:51.770579Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
tomcat-mysql-db | 2025-09-22T02:11:53.055068Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
tomcat-mysql-db | 2025-09-22T02:11:54.290018Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
tomcat-mysql-db | 2025-09-22T02:11:54.290155Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
tomcat-mysql-db | 2025-09-22T02:11:54.297882Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
tomcat-mysql-db | 2025-09-22T02:11:54.349742Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock
tomcat-mysql-db | 2025-09-22T02:11:54.350278Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.43' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
tomcat-mysql-db | 2025-09-22 02:11:54+00:00 [Note] [Entrypoint]: Temporary server started.
tomcat-mysql-db | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
tomcat-mysql-db | Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
tomcat-mysql-db | 2025-09-22 02:12:00+00:00 [Note] [Entrypoint]: Creating database example_db
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22 02:12:00+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/mysql-init.sql
tomcat-mysql-db | idusernameagecreate_time
tomcat-mysql-db | 1Alice222025-09-22 02:12:00
tomcat-mysql-db | 2Bob252025-09-22 02:12:00
tomcat-mysql-db | 3Charlie282025-09-22 02:12:00
tomcat-mysql-db |
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22 02:12:00+00:00 [Note] [Entrypoint]: Stopping temporary server
tomcat-mysql-db | 2025-09-22T02:12:00.726113Z 12 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.43).
tomcat-mysql-db | 2025-09-22T02:12:02.241898Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.43) MySQL Community Server - GPL.
tomcat-mysql-db | 2025-09-22 02:12:02+00:00 [Note] [Entrypoint]: Temporary server stopped
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22 02:12:02+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
tomcat-mysql-db |
tomcat-mysql-db | 2025-09-22T02:12:03.171632Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
tomcat-mysql-db | 2025-09-22T02:12:03.173878Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.43) starting as process 1
tomcat-mysql-db | 2025-09-22T02:12:03.193609Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
tomcat-mysql-db | 2025-09-22T02:12:03.509562Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
tomcat-mysql-db | 2025-09-22T02:12:04.060983Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
tomcat-mysql-db | 2025-09-22T02:12:04.061122Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
tomcat-mysql-db | 2025-09-22T02:12:04.064970Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
tomcat-mysql-db | 2025-09-22T02:12:04.134686Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
tomcat-mysql-db | 2025-09-22T02:12:04.136485Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.43' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
bash
Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/example-webapp] Context cannot be started.
at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:229)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
... 37 more
22-Sep-2025 02:19:25.381 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/example-webapp] has finished in [102] ms
22-Sep-2025 02:19:25.395 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:19:25.424 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [291] milliseconds
cd /root/projects/tomcat-mysql
^C[root@host1 tomcat-mysql]#
[root@host1 tomcat-mysql]# docker logs -f tomcat-server
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:19:24.180 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.109
22-Sep-2025 02:19:24.190 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 1 2025 12:15:33 UTC
22-Sep-2025 02:19:24.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.109.0
22-Sep-2025 02:19:24.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
22-Sep-2025 02:19:24.192 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.14.0-611.el9.x86_64
22-Sep-2025 02:19:24.192 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Sep-2025 02:19:24.193 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
22-Sep-2025 02:19:24.193 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.28+6
22-Sep-2025 02:19:24.194 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
22-Sep-2025 02:19:24.194 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
22-Sep-2025 02:19:24.195 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
22-Sep-2025 02:19:24.215 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
22-Sep-2025 02:19:24.216 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
22-Sep-2025 02:19:24.217 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
22-Sep-2025 02:19:24.218 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
22-Sep-2025 02:19:24.218 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:19:24.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
22-Sep-2025 02:19:24.220 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
22-Sep-2025 02:19:24.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
22-Sep-2025 02:19:24.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
22-Sep-2025 02:19:24.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
22-Sep-2025 02:19:24.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
22-Sep-2025 02:19:24.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
22-Sep-2025 02:19:24.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
22-Sep-2025 02:19:24.233 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
22-Sep-2025 02:19:24.242 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
22-Sep-2025 02:19:25.075 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:19:25.132 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1446] milliseconds
22-Sep-2025 02:19:25.260 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
22-Sep-2025 02:19:25.261 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.109]
22-Sep-2025 02:19:25.278 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
22-Sep-2025 02:19:25.315 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [9] column [76]
org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.320 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying deployment descriptor [/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml]
org.xml.sax.SAXParseException; systemId: file:///usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1500)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.364 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse fatal error at line [9] column [76]
org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.368 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for [/example-webapp]
org.xml.sax.SAXParseException; systemId: file:/usr/local/tomcat/webapps/example-webapp/META-INF/context.xml; lineNumber: 9; columnNumber: 76; The reference to entity "serverTimezone" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:912)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1512)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1353)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
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:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
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:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1518)
at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:731)
at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:676)
at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:939)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:155)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
22-Sep-2025 02:19:25.374 SEVERE [main] org.apache.catalina.startup.ContextConfig.processContextConfig Occurred at line [9] column [76]
22-Sep-2025 02:19:25.376 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:604)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1174)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1883)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1085)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1579)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:722)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:739)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/example-webapp] Context cannot be started.
at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:229)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
... 37 more
22-Sep-2025 02:19:25.381 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/example-webapp] has finished in [102] ms
22-Sep-2025 02:19:25.395 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:19:25.424 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [291] milliseconds
^C[root@host1 tomcat-mysql]#
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/META-INF/context.xml
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/META-INF/context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true">
<Resource
name="jdbc/ExampleDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://mysql:3306/example_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"
username="root"
password="123456"
maxTotal="100"
maxIdle="20"
minIdle="5"
maxWaitMillis="10000"
/>
</Context>
[root@host1 tomcat-mysql]# vi docker-compose.yaml
[root@host1 tomcat-mysql]# cat docker-compose.yaml
services:
# 1. MySQL 服务(自动执行初始化脚本)
mysql:
image: mysql:8.0 # 与 MySQL 驱动版本匹配(8.0.28 驱动适配 MySQL 8.0)
container_name: tomcat-mysql-db
environment:
MYSQL_ROOT_PASSWORD: 123456 # 与 context.xml 中的 password 一致
MYSQL_DATABASE: example_db # 与 context.xml 中的数据库名一致
volumes:
# 挂载初始化 SQL 脚本,MySQL 启动时自动执行(创建表和测试数据)
- ./dbinit/mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql
# 挂载数据卷,持久化 MySQL 数据(重启容器数据不丢失)
- mysql-data:/var/lib/mysql
networks:
- tomcat-mysql-net # 自定义网络,让 Tomcat 能通过容器名访问 MySQL
restart: always # 容器异常时自动重启
# 2. Tomcat 服务(挂载 Web 应用、MySQL 驱动)
tomcat:
image: tomcat:9-jdk11 # Tomcat 9 + JDK 11(适配 Java Web 应用)
container_name: tomcat-server
ports:
- "8080:8080" # 暴露 8080 端口,外部可访问
volumes:
# 挂载 Web 应用到 Tomcat 的 webapps 目录(容器内路径固定)
- ./tomcat/webapps/example-webapp:/usr/local/tomcat/webapps/example-webapp
# 挂载 MySQL 驱动到 Tomcat 容器的 lib 目录(解决驱动加载问题!)
- ./tomcat/webapps/example-webapp/WEB-INF/lib/mysql-connector-java-8.0.28.jar:/usr/local/tomcat/lib/mysql-connector-java-8.0.28.jar
# 可选:挂载 Tomcat 全局配置(如需自定义 server.xml 等)
# - ./tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
depends_on:
- mysql # 确保 MySQL 先启动,再启动 Tomcat(避免连接失败)
networks:
- tomcat-mysql-net
restart: always
# 定义网络(隔离项目网络,避免与其他容器冲突)
networks:
tomcat-mysql-net:
driver: bridge
# 定义数据卷(持久化 MySQL 数据)
volumes:
mysql-data:
[root@host1 tomcat-mysql]# docker compose down
[+] Running 3/3
✔ Container tomcat-server Removed 0.5s
✔ Container tomcat-mysql-db Removed 1.0s
✔ Network tomcat-mysql_tomcat-mysql-net Removed 0.2s
[root@host1 tomcat-mysql]# docker compose up -d
[+] Running 3/3
✔ Network tomcat-mysql_tomcat-mysql-net Created 0.1s
✔ Container tomcat-mysql-db Started 0.5s
✔ Container tomcat-server Started 0.8s
[root@host1 tomcat-mysql]# docker logs -f tomcat-server
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:23:05.972 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.109
22-Sep-2025 02:23:05.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 1 2025 12:15:33 UTC
22-Sep-2025 02:23:05.982 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.109.0
22-Sep-2025 02:23:05.983 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
22-Sep-2025 02:23:05.984 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.14.0-611.el9.x86_64
22-Sep-2025 02:23:05.984 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Sep-2025 02:23:05.984 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk
22-Sep-2025 02:23:05.985 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.28+6
22-Sep-2025 02:23:05.985 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium
22-Sep-2025 02:23:05.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
22-Sep-2025 02:23:05.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
22-Sep-2025 02:23:06.009 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
22-Sep-2025 02:23:06.010 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
22-Sep-2025 02:23:06.010 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
22-Sep-2025 02:23:06.011 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
22-Sep-2025 02:23:06.011 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
22-Sep-2025 02:23:06.012 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
22-Sep-2025 02:23:06.012 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Sep-2025 02:23:06.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
22-Sep-2025 02:23:06.014 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Sep-2025 02:23:06.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
22-Sep-2025 02:23:06.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
22-Sep-2025 02:23:06.016 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
22-Sep-2025 02:23:06.016 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
22-Sep-2025 02:23:06.017 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
22-Sep-2025 02:23:06.017 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
22-Sep-2025 02:23:06.017 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
22-Sep-2025 02:23:06.017 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
22-Sep-2025 02:23:06.026 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
22-Sep-2025 02:23:06.027 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
22-Sep-2025 02:23:06.027 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
22-Sep-2025 02:23:06.038 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
22-Sep-2025 02:23:06.864 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:23:06.930 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1408] milliseconds
22-Sep-2025 02:23:07.079 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
22-Sep-2025 02:23:07.080 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.109]
22-Sep-2025 02:23:07.100 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/example-webapp]
22-Sep-2025 02:23:08.430 INFO [main] 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.
22-Sep-2025 02:23:08.549 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/example-webapp] has finished in [1,447] ms
22-Sep-2025 02:23:08.560 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Sep-2025 02:23:08.593 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1661] milliseconds
^C[root@host1 tomcat-mysql]#
[root@host1 tomcat-mysql]# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
tomcat-mysql-db mysql:8.0 "docker-entrypoint.s..." mysql 2 minutes ago Up 2 minutes 3306/tcp, 33060/tcp
tomcat-server tomcat:9-jdk11 "catalina.sh run" tomcat 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp
[root@host1 tomcat-mysql]# ls tomcat/webapps/example-webapp
META-INF WEB-INF
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/index.jsp
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Tomcat-MySQL JNDI 测试入口</title>
<style>body { font-family: Arial; margin: 20px; }</style>
</head>
<body>
<h1>Tomcat-MySQL JNDI 测试示例</h1>
<ul>
<li><a href="test-datasource.jsp">测试JNDI数据源(获取连接)</a></li>
<li><a href="test-jdbc.jsp">测试JDBC查询(通过JNDI数据源查用户表)</a></li>
<li><a href="test-jndi.jsp">测试JNDI查找(验证资源是否存在)</a></li>
<li><a href="test-attributes.jsp">(可选)测试请求属性</a></li>
<li><a href="test-filesystem.jsp">(可选)测试文件系统</a></li>
</ul>
</body>
</html>
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/test-datasource.jsp
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/test-datasource.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.sql.DataSource" %>
<%@ page import="java.sql.Connection" %>
<html>
<head>
<title>测试JNDI数据源</title>
<style>body { font-family: Arial; margin: 20px; color: #333; }</style>
</head>
<body>
<h1>测试JNDI数据源(jdbc/ExampleDB)</h1>
<%
Connection conn = null;
try {
// 1. 初始化JNDI上下文
Context ctx = new InitialContext();
// 2. 查找JNDI数据源(名称需与context.xml一致,前缀java:comp/env/是固定格式)
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/ExampleDB");
// 3. 从数据源获取数据库连接
conn = ds.getConnection();
if (conn != null && !conn.isClosed()) {
out.println("<p style='color: green;'>✅ 成功获取JNDI数据源!</p>");
out.println("<p>✅ 成功创建数据库连接!</p>");
out.println("<p>连接信息:" + conn.toString() + "</p>");
}
} catch (Exception e) {
out.println("<p style='color: red;'>❌ 数据源获取失败!</p>");
out.println("<p>错误信息:" + e.getMessage() + "</p>");
e.printStackTrace();
} finally {
// 4. 关闭连接(放回连接池)
if (conn != null && !conn.isClosed()) {
conn.close();
}
}
%>
<p><a href="index.jsp">返回首页</a></p>
</body>
</html>
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/test-jdbc.jsp
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/test-jdbc.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.sql.DataSource" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.text.SimpleDateFormat" %>
<html>
<head>
<title>测试JDBC查询(通过JNDI数据源)</title>
<style>
body { font-family: Arial; margin: 20px; }
table { border-collapse: collapse; width: 80%; margin-top: 20px; }
th, td { border: 1px solid #ddd; padding: 10px; text-align: center; }
th { background-color: #f5f5f5; }
</style>
</head>
<body>
<h1>JDBC查询测试(查询user表数据)</h1>
<%
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
// 1. 通过JNDI获取数据源
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/ExampleDB");
conn = ds.getConnection();
// 2. 执行JDBC查询(查询user表)
String sql = "SELECT id, username, age, create_time FROM user ORDER BY id";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
out.println("<p style='color: green;'>✅ 成功通过JNDI数据源执行JDBC查询!</p>");
out.println("<table>");
out.println("<tr><th>ID</th><th>用户名</th><th>年龄</th><th>创建时间</th></tr>");
// 3. 解析结果集
while (rs.next()) {
out.println("<tr>");
out.println("<td>" + rs.getInt("id") + "</td>");
out.println("<td>" + rs.getString("username") + "</td>");
out.println("<td>" + rs.getInt("age") + "</td>");
out.println("<td>" + sdf.format(rs.getTimestamp("create_time")) + "</td>");
out.println("</tr>");
}
out.println("</table>");
} catch (Exception e) {
out.println("<p style='color: red;'>❌ JDBC查询失败!</p>");
out.println("<p>错误信息:" + e.getMessage() + "</p>");
e.printStackTrace();
} finally {
// 4. 关闭资源(按ResultSet → PreparedStatement → Connection顺序)
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null && !conn.isClosed()) conn.close();
}
%>
<p><a href="index.jsp">返回首页</a></p>
</body>
</html>
[root@host1 tomcat-mysql]# vi tomcat/webapps/example-webapp/test-jndi.jsp
[root@host1 tomcat-mysql]# cat tomcat/webapps/example-webapp/test-jndi.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.naming.NamingEnumeration" %>
<%@ page import="javax.naming.NameClassPair" %>
<html>
<head>
<title>测试JNDI查找</title>
<style>body { font-family: Arial; margin: 20px; }</style>
</head>
<body>
<h1>测试JNDI查找(验证资源)</h1>
<%
try {
// 1. 初始化JNDI上下文
Context ctx = new InitialContext();
// 2. 查找JNDI环境上下文(java:comp/env/是Web应用的JNDI命名空间)
Context envCtx = (Context) ctx.lookup("java:comp/env");
out.println("<p>✅ 成功获取JNDI环境上下文(java:comp/env)</p>");
out.println("<h3>当前JNDI命名空间下的资源:</h3>");
out.println("<ul>");
// 3. 列举所有JNDI资源(验证jdbc/ExampleDB是否存在)
NamingEnumeration<NameClassPair> enumeration = envCtx.list("");
while (enumeration.hasMoreElements()) {
NameClassPair pair = enumeration.nextElement();
out.println("<li>资源名称:" + pair.getName() + " → 资源类型:" + pair.getClassName() + "</li>");
}
out.println("</ul>");
// 4. 单独验证数据源资源
Object dsObj = envCtx.lookup("jdbc/ExampleDB");
if (dsObj != null) {
out.println("<p style='color: green;'>✅ 成功找到JNDI数据源:jdbc/ExampleDB</p>");
out.println("<p>数据源类型:" + dsObj.getClass().getName() + "</p>");
}
} catch (Exception e) {
out.println("<p style='color: red;'>❌ JNDI查找失败!</p>");
out.println("<p>错误信息:" + e.getMessage() + "</p>");
e.printStackTrace();
}
%>
<p><a href="index.jsp">返回首页</a></p>
</body>
</html>
[root@host1 tomcat-mysql]# mysql -u root -p < dbinit/mysql-init.sql
bash: mysql: 未找到命令...
提供此文件的软件包是:
'mariadb'
'mysql'
[root@host1 tomcat-mysql]# yum install -y mysql
上次元数据过期检查:0:52:03 前,执行于 2025年09月22日 星期一 09时40分14秒。
依赖关系解决。
=====================================================================================================
软件包 架构 版本 仓库 大小
=====================================================================================================
安装:
mysql x86_64 8.0.41-2.el9 appstream 2.8 M
安装依赖关系:
mariadb-connector-c-config noarch 3.2.6-1.el9 appstream 11 k
mysql-common x86_64 8.0.41-2.el9 appstream 73 k
事务概要
=====================================================================================================
安装 3 软件包
总下载:2.9 M
安装大小:60 M
下载软件包:
(1/3): mariadb-connector-c-config-3.2.6-1.el9.noarch.rpm 1.9 kB/s | 11 kB 00:05
(2/3): mysql-common-8.0.41-2.el9.x86_64.rpm 13 kB/s | 73 kB 00:05
(3/3): mysql-8.0.41-2.el9.x86_64.rpm 487 kB/s | 2.8 MB 00:05
-----------------------------------------------------------------------------------------------------
总计 500 kB/s | 2.9 MB 00:05
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : mariadb-connector-c-config-3.2.6-1.el9.noarch 1/3
安装 : mysql-common-8.0.41-2.el9.x86_64 2/3
安装 : mysql-8.0.41-2.el9.x86_64 3/3
运行脚本: mysql-8.0.41-2.el9.x86_64 3/3
验证 : mariadb-connector-c-config-3.2.6-1.el9.noarch 1/3
验证 : mysql-8.0.41-2.el9.x86_64 2/3
验证 : mysql-common-8.0.41-2.el9.x86_64 3/3
已安装:
mariadb-connector-c-config-3.2.6-1.el9.noarch mysql-8.0.41-2.el9.x86_64
mysql-common-8.0.41-2.el9.x86_64
完毕!
[root@host1 tomcat-mysql]# mysql -u root -p < dbinit/mysql-init.sql
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@host1 tomcat-mysql]# systemctl status mysqld
Unit mysqld.service could not be found.
[root@host1 tomcat-mysql]# systemctl start mysqld
Failed to start mysqld.service: Unit mysqld.service not found.
[root@host1 tomcat-mysql]# yum install -y mysql-server
上次元数据过期检查:0:55:01 前,执行于 2025年09月22日 星期一 09时40分14秒。
依赖关系解决。
=====================================================================================================
软件包 架构 版本 仓库 大小
=====================================================================================================
安装:
mysql-server x86_64 8.0.41-2.el9 appstream 17 M
安装依赖关系:
mecab x86_64 0.996-3.el9.4 appstream 356 k
mysql-errmsg x86_64 8.0.41-2.el9 appstream 507 k
mysql-selinux noarch 1.0.14-1.el9 appstream 36 k
protobuf-lite x86_64 3.14.0-16.el9 appstream 233 k
事务概要
=====================================================================================================
安装 5 软件包
总下载:18 M
安装大小:120 M
下载软件包:
(1/5): mysql-selinux-1.0.14-1.el9.noarch.rpm 6.4 kB/s | 36 kB 00:05
(2/5): mecab-0.996-3.el9.4.x86_64.rpm 62 kB/s | 356 kB 00:05
(3/5): mysql-errmsg-8.0.41-2.el9.x86_64.rpm 50 kB/s | 507 kB 00:10
(4/5): protobuf-lite-3.14.0-16.el9.x86_64.rpm 52 kB/s | 233 kB 00:04
(5/5): mysql-server-8.0.41-2.el9.x86_64.rpm 2.8 MB/s | 17 MB 00:05
-----------------------------------------------------------------------------------------------------
总计 1.5 MB/s | 18 MB 00:11
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : protobuf-lite-3.14.0-16.el9.x86_64 1/5
运行脚本: mysql-selinux-1.0.14-1.el9.noarch 2/5
安装 : mysql-selinux-1.0.14-1.el9.noarch 2/5
运行脚本: mysql-selinux-1.0.14-1.el9.noarch 2/5
libsemanage.semanage_direct_install_info: Overriding mysql module at lower priority 100 with module at priority 200.
安装 : mysql-errmsg-8.0.41-2.el9.x86_64 3/5
安装 : mecab-0.996-3.el9.4.x86_64 4/5
运行脚本: mysql-server-8.0.41-2.el9.x86_64 5/5
安装 : mysql-server-8.0.41-2.el9.x86_64 5/5
运行脚本: mysql-server-8.0.41-2.el9.x86_64 5/5
运行脚本: mysql-selinux-1.0.14-1.el9.noarch 5/5
运行脚本: mysql-server-8.0.41-2.el9.x86_64 5/5
验证 : mecab-0.996-3.el9.4.x86_64 1/5
验证 : mysql-errmsg-8.0.41-2.el9.x86_64 2/5
验证 : mysql-selinux-1.0.14-1.el9.noarch 3/5
验证 : mysql-server-8.0.41-2.el9.x86_64 4/5
验证 : protobuf-lite-3.14.0-16.el9.x86_64 5/5
已安装:
mecab-0.996-3.el9.4.x86_64 mysql-errmsg-8.0.41-2.el9.x86_64
mysql-selinux-1.0.14-1.el9.noarch mysql-server-8.0.41-2.el9.x86_64
protobuf-lite-3.14.0-16.el9.x86_64
完毕!
[root@host1 tomcat-mysql]# systemctl start mysqld
[root@host1 tomcat-mysql]# systemctl enable mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
[root@host1 tomcat-mysql]# systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
Active: active (running) since Mon 2025-09-22 10:36:21 CST; 8s ago
Main PID: 606460 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 48528)
Memory: 451.5M (peak: 466.5M)
CPU: 11.033s
CGroup: /system.slice/mysqld.service
└─606460 /usr/libexec/mysqld --basedir=/usr
9月 22 10:36:08 host1 systemd[1]: Starting MySQL 8.0 database server...
9月 22 10:36:09 host1 mysql-prepare-db-dir[605114]: Initializing MySQL database
9月 22 10:36:21 host1 systemd[1]: Started MySQL 8.0 database server.
[root@host1 tomcat-mysql]# mysql -u root -p -e "USE example_db; SELECT * FROM user;"
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@host1 tomcat-mysql]# mysql -u root -p -e "USE example_db; SELECT * FROM user;"
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@host1 tomcat-mysql]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.41 Source distribution
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> -e "USE example_db; SELECT * FROM user;"
-> exit
-> EXIT;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-e "USE example_db; SELECT * FROM user;"
exit
EXIT' at line 1
mysql> mysql -u root -e "USE example_db; SELECT * FROM user;"
-> EXIT;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql -u root -e "USE example_db; SELECT * FROM user;"
EXIT' at line 1
mysql> EXIT;
Bye
[root@host1 tomcat-mysql]# cp -r tomcat/webapps/example-webapp /usr/local/tomcat/webapps/
cp: 无法创建目录 '/usr/local/tomcat/webapps/': 没有那个文件或目录
[root@host1 tomcat-mysql]# cp -r tomcat/webapps/example-webapp cd /root/projects/tomcat-mysql/webapps/
cp: 目标'/root/projects/tomcat-mysql/webapps/' 不是目录
[root@host1 tomcat-mysql]# docker exec -it tomcat-server ls /usr/local/tomcat/webapps/example-webapp
index.jsp META-INF test-datasource.jsp test-jdbc.jsp test-jndi.jspWEB-INF
[root@host1 tomcat-mysql]# docker compose restart
[+] Restarting 2/2
✔ Container tomcat-mysql-db Started 1.6s
✔ Container tomcat-server Started 0.9s
[root@host1 tomcat-mysql]#
代码过程可能出现遗漏或者是重复,请多多体谅和修正!!!