zoukankan      html  css  js  c++  java
  • 关于Eclipse 无法安装高版本Tomcat的解决办法

    我使用的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行)找到如下信息:

    %_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

  • 相关阅读:
    在放置不同图片尺寸时,应该选择合适的放置
    在腾讯开发应用中心上架apk所遇到的问题
    仿慕课网下拉加载动画
    android 视频的缩略图 缓存机制和 异步加载缩略图
    在做Android开发的,如何去掉滚动view在尽头时的阴影效果
    java中常见的模式之自定义观察者和java库中观察者
    在JAVA和android中常用的单列模式
    android 代码控制控件的长宽,小技巧
    IFrame 框架的用法简介
    PHP中RabbitMQ之amqp扩展实现(四)
  • 原文地址:https://www.cnblogs.com/jnnleo/p/12097405.html
Copyright © 2011-2022 走看看