网站首页 > 技术文章 正文
我使用的eclipse mar2当前是不支持tomcat9的,但也不是没有变通的办法来解决这个问题,
以下是我在windows环境下的解决的过程(tomcat版本:apache-tomcat-9.0.0.M6),
不想看过程的也可以直接跳到3直接看解决办法:
1.在bin目录下有个文件:version.bat。
在 version.bat 的末尾处(56行)有行命令 :
call "%EXECUTABLE%" version %CMD_LINE_ARGS%
在中部(38行)你能找到变量EXECUTABLE的赋值命令:
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
2.打开catalina.bat 搜索version 在250行左右你会发现下面一行命令:
if ""%1"" == ""version"" goto doVersion
也就是说当参数为 version时 跳转到 doVersion函数
查找doVersion (大概在306行)找到如下信息:
:doVersion
%_EXECJAVA% -classpath "%CATALINA_HOME%\lib\catalina.jar" org.apache.catalina.util.ServerInfo
goto end
然后反编译catalina.jar找到org.apache.catalina.util.ServerInfo就会发现:如下代码:
InputStream is = ServerInfo.class.getResourceAsStream("/org/apache/catalina/util/ServerInfo.properties");
......
props.load(is);
info = props.getProperty("http://server.info");
built = props.getProperty("server.built");
number = props.getProperty("server.number");
.....
if (info == null)
info = "Apache Tomcat 9.0.x-dev";
if (built == null)
built = "unknown";
if (number == null) {
number = "9.0.x";
}
serverInfo = info;
serverBuilt = built;
serverNumber = number;
3.找到lib下的catalina.jar,使用压缩软件打开。找到org/apache/catalina/util/ServerInfo.properties,然后修改server.info与server.number的值,伪装成tomcat8即可。例如我就是直接把tomcat8.0.14的考过来的:
server.info=Apache Tomcat/8.0.14
server.number=8.0.14.0
运行时日志:
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version: Apache Tomcat/8.0.14
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built: May 11 2016 21:43:59 UTC
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number: 8.0.14.0
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name: Windows 10
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version: 10.0
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture: amd64
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home: D:\Java\jdk1.8.0_77\jre
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version: 1.8.0_77-b03
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor: Oracle Corporation
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE: D:\Server\apache-tomcat-9.0.0.M6
五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME: D:\Server\apache-tomcat-9.0.0.M6
猜你喜欢
- 2025-07-28 JDK高版本特性总结与ZGC实践(jdk高版本兼容低版本吗)
- 2024-10-30 深入理解 volatile 关键字 volatile关键字的应用场景
- 2024-10-30 JVM知识点总览:高级Java工程师面试必备
- 2024-10-30 面试官:连 INSERT INTO SET 都不知道怎么用,你这3年都干些什么了?
- 2024-10-30 Java 14 新功能介绍 java技术介绍
- 2024-10-30 MySQL 避坑指南之隐式数据类型转换
- 2024-10-30 Oracle,SQL Server 数据库较MySql数据库,Sql语句差异
- 2024-10-30 Oracle中PL/SQL基本语法 oracle的pl/sql
- 2024-10-30 Oracle数据库扩展语言PL/SQL之Procedure
- 2024-10-30 ORA-01720:不存在SYS.DUAL的授权选项的解决方案
你 发表评论:
欢迎- 636℃几个Oracle空值处理函数 oracle处理null值的函数
- 629℃Oracle分析函数之Lag和Lead()使用
- 617℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 613℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 611℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 603℃【数据统计分析】详解Oracle分组函数之CUBE
- 590℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 576℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)