tomcat7升级8和JDK7升级8的问题总结:

时间:2022-12-06 19:36:36
首先下载安装8版本的jdk和tomcat;
然后配置JAVA_HOME到/etc/profile文件中
修改tomcat8的配置:
首先启动查看是否查找配置好的新JDK
如果不是则解决方案为:
在tomcat的bin目录中的catalina.sh中#!/bin/sh的后面添加JAVA_HOME
export JAVA_HOME=/usr/java/default 指向最新版本号的JDK安装目录。
这个时候JDK版本已经变为最新版本了。
接下来是对TOMCAT最新版本升级中除JAVA_HOME配置问题之外的问题。
因为我们是通过jenkins编译发布war包到远端服务器的。所以我们需要在服务器中添加对应的用户名和密码和角色:
在tomcat目录中的conf目录中tomcat-users.xml中添加
<role rolename="admin"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="username" password="password" roles="admin,manager-gui,manager-script,manager-jmx,manager-status"/>
然后通过添加的用户名和密码来发布项目:
这个时候远端发布,有可能会发现不被允许,但提示并不是密码和用户名不对而是类似如下的错误:
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://172.16.3.82:8024/manager/text/list
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:544)
... 19 more
Build step 'Deploy war/ear to a container' marked build as failure
这个时候我们要找到webapps/manager/META-INF目录中的context.xml中修改
<Context antiResourceLocking="false" privileged="true" >  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> 
         为
<Context antiResourceLocking="false" privileged="true" >
<!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
于是可以正常发布。
当然在升级JDK8以后大部分代码可以正常运行,但是由于项目中引用了dubbo2.5.3版本中存在javassist依赖。
而次依赖版本过旧导致创建bean失败。
于是我们可以通过引入最新版本的jar包依赖来解决。
首先我们去掉了对dubbo版本中的javassist包的依赖
 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <groupId>org.javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
然后单独引入最新稳定版本的javassist依赖。完成编译。
运行。
以上就是公司在SSM整合+dubbo+zookeeper+redis+mysql将jdk1.7升级JDK8,tomcat7升级到tomcat8的过程中遇到的问题总结。