TongWeb8防止System.exit代码导致的进程停止

news2025/1/25 9:16:13

现象:

当应用中存在System.exit 、Runtime.exit代码执行时,会导致TongWeb进程停止,从而产生如下日志:

2023-02-14 09:47:36 [WARN] - The web application [webtest01] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation. Stack trace of request processing thread:[
java.lang.Object.wait(Native Method)
java.lang.Thread.join(Thread.java:1257)
java.lang.Thread.join(Thread.java:1331)
java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:107)
java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
java.lang.Shutdown.runHooks(Shutdown.java:123)
java.lang.Shutdown.sequence(Shutdown.java:170)
java.lang.Shutdown.exit(Shutdown.java:216)
java.lang.Runtime.exit(Runtime.java:109)
java.lang.System.exit(System.java:971)
com.tong.TestServlet.doGet(TestServlet.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:503)
javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
com.tongweb.server.core.ApplicationFilterChain.enterApp(ApplicationFilterChain.java:365)

解决方式:

方式一:修改应用代码,将System.exit 、Runtime.exit代码删除。

方式二:开启TongWeb的安全策略功能,禁止System.exit退出。

开启后拦截日志有如下输出:

System exit request has been denied.
java.lang.Thread.getStackTrace(Thread.java:1564)
java.lang.Shutdown.exit(Shutdown.java)
java.lang.Runtime.exit(Runtime.java:109)
java.lang.System.exit(System.java:971)
com.tong.TestServlet.doGet(TestServlet.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:503)
javax.servlet.http.HttpServlet.service(HttpServlet.java:590)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 19.删除链表的倒数第 N 个结点

原题链接 难度:middle\color{orange}{middle}middle 题目描述 给你一个链表,删除链表的倒数第 nnn 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2&#x…

快速部署个人导航页:美好的一天从井然有序开始

很多人都习惯使用浏览器自带的收藏夹来管理自己的书签,然而收藏夹存在着一些问题。 经过长时间的累积,一些高频使用的重要网站和偶尔信手收藏的链接混在了一起,收藏夹因为内容过多而显得杂乱无章;收藏夹没有什么美观可言&#xf…

【java】Spring Boot --40 个 Spring Boot 常用注解(建议收藏)

本文目录一、Spring Web MVC 注解Spring Web MVC 注解RequestMappingRequestBodyGetMappingPostMappingPutMappingDeleteMappingPatchMappingControllerAdviceResponseBodyExceptionHandlerResponseStatusPathVariableRequestParamControllerRestControllerModelAttributeCross…

sqlServer 2019 开发版(Developer)下载及安装

下载软件 官网只有2022的,2019使用百度网盘进行下载 安装下崽器 选择自定义安装 选择语言、以及安装位置 点击“安装” 安装 SQL Server 可能的故障 以上步骤安装后会弹出以上界面,如果未弹出,手动去安装目录下点击 SETUP.EXE 文件…

数据分析与SAS学习笔记1

数据分析的六层模型: 1)数据源层:数据分析的数据源;DBA;初加工;对数据源按某些规则进行抽取,ETL; 2)数据仓库层:OLAP的功能,联机事务处理。OLTP、…

这才叫装机必备 , 这4款电脑软件超级实用,用一次就爱上

好用又免费的软件犹如被掩盖的珍珠,一旦发现了,让你满眼欣喜。 1、HiBit Uninstaller 这是一款大小不到10M的超实用卸载软件,完全免费无任何广告,兼顾垃圾清理、流氓软件卸载等超多实用功能,流氓软件卸载能力比某安全卫…

T-SQL基础(SQL高级编程语言)(二)

一、常量、变量 1. 常量 又称为字面值或标量值,程序运行过程中值不变’O’Bbaar’,如果单引号中的字符串包含引号,可以使用两个单引号表示嵌入的单引号。 2.变量 ​ 变量名不能与系统变量相同://img- 变量的声明赋值与使用 case※※ ​ case语句上…

实例一:MATLAB APP design- 简单的函数表达式运算(Y=X1^3+X2^2+X3)

一、APP 界面设计展示注:在自变量框输入自变量,点击计算按钮,结果就会显示在因变量输出框。二、APP设计界面运行结果展示该APP界面设计包括表达式运算显示框,自变量输入框,计算按钮,因变量输出框。注&#…

正大数据抢先看 祝各位情人节快乐

美国1月消费者物价指数 (CPI)周二 21:30,估6.2%,前值 6.5%。 周三12:00达拉斯FED总裁、03:00纽约FED总裁发表演说、和欧洲 央行 (ECB)总裁拉加德22:00演说。 日本政府预定周二向国会提出日本银行 (央行,BOJ) 总裁黑田东彦的继任人选。 市场高…

【服务器数据恢复】Hyper-V虚拟机数据恢复案例

服务器数据恢复环境: WinServer操作系统服务器,部署Hyper-V虚拟机环境; 虚拟机的硬盘文件和配置文件存储在一台存储设备中; 该存储设备配置:一组4盘raid5阵列存放虚拟机数据单块盘存放虚拟机数据备份。 服务器故障&am…

附录1-pytorch目标检测

源码来自作者Bubbliiiing,我对参考链接的代码略有修改,网盘地址 链接:百度网盘 请输入提取码 提取码:bfvs 目录 1 参考 2 环境 3 数据集准备 3.1 VOCdevkit/VOC2007 3.2 model_data/voc_classes.txt 3.3 voc_annota…

【Java|多线程与高并发】进程与线程的区别与联系

文章目录什么是进程什么是线程上下文切换多线程一定比串行执行快吗进程与线程的区别与联系什么是进程 进程的定义:进程是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU(寄存器),IO,内存&a…

自学前端最容易犯的10个的错误,入门学前端快来看看

在前端学习过程中,有很多常见的误区,包括过度关注框架和库、缺乏实践、忽视算法和数据结构、忽视浏览器兼容性、缺乏团队合作经验、忽视可访问性、重构次数过多、没有关注性能、缺乏设计知识以及没有持续学习等。要避免这些误区,应该注重基础…

Lambda表达式详细操作

一、基础语法 形态一:匿名内部类 Runnable runnable new Runnable() {Overridepublic void run() {System.out.println(Thread.currentThread().getName());} };runnable.run();形态二:完整的Lambda表达式 口诀:复制小括号,写…

消息中间件----内存数据库 Redis7(第1章 Redis 概述)

第1章 Redis 概述1.1 Redis 简介Redis,Remote Dictionary Server,远程字典服务,由意大利人 Salvatore Sanfilippo(又名Antirez)开发,是一个使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、…

【路径规划】基于Dijkstra算法及Floyd算法的通信与网络路径规划(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Dubbo相关问题合集

Dubbo相关问题合集 java.io.StreamCorruptedException: invalid stream header: 77D30000 ; Decode rpc invocation failed 现象 2023-02-14 09:49:32.251 [NettyServerWorker-4-2] [] [WARN] o.a.d.r.exchange.codec.ExchangeCodec-130 [DUBBO] Skip input stream 634, du…

go gin学习记录2

环境 环境:mac m1,go version 1.17.2, goland, mysql 昨天学习了安装和基本的参数,路由使用,今天接着学习一下数据库的操作。 建立数据库 测试数据库操作,需要先准备一个测试用的数据库&…

【自适应软件开发过程思想】自适应软件开发 - 简介 Adaptive Software Development Introduction(中英文)

目录 ASWD 核心思想 什么是敏捷(Agile)? 敏捷宣言(Agile Manifesto) 敏捷的特征

微前端指北

微前端概述 Techniques, strategies and recipes for building a modern web app with multiple teams that can ship features independently. – Micro Frontends 什么是微前端 微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 …