zl程序教程

您现在的位置是:首页 >  工具

当前栏目

IDEA部署Tomcat

2023-09-27 14:27:32 时间

Powered by:NEFU AB-IN

IDEA远程调控Tomcat

写在前面
由于61711是Java远程debug所开设的窗口,由于开放此端口会导致较为严重的hack,hacker会以root身份通过此端口执行命令,导致系统极其不安全,因此我关闭了此端口。
目前我还没找到关闭此端口,还能让idea顺利连接到云服务器项目的方法,因此以下操作仅供参考
比较正规的方法,是安装宝塔的tomcat服务,并上传包至webapps下面,平常debug,用本地的tomcat调试即可

  • 准备

    • 云服务器
    • I D E A IDEA IDEA
    • 本地 T o m c a t Tomcat Tomcat
    • 云服务器 T o m c a t Tomcat Tomcat
  • 云服务器

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CEWL2k3S-1631426262023)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912130630844.png)]

  • IDEA

    首先要有一个 w e b web web项目

    ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e5uRLkNC-1631426262028)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912130658601.png)]](https://img-blog.csdnimg.cn/2d7b9b89f43d41839648064b3b5fb0d1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATkVGVSBBQl9JTg==,size_20,color_FFFFFF,t_70,g_se,x_16

    w e b web web项目在 p o m pom pom中设置 w a r war war

    在这里插入图片描述
    p o m . x m l pom.xml pom.xml源码

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>web-examples</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
        <properties>
            <maven.compiler.source>16</maven.compiler.source>
            <maven.compiler.target>16</maven.compiler.target>
        </properties>
    
        <dependencies>
            <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>4.0.1</version>
                <scope>provided</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-spec -->
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-spec</artifactId>
                <version>1.2.5</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl -->
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-impl</artifactId>
                <version>1.2.5</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.21</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>1.3.2</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.3.1</version>
                </plugin>
            </plugins>
        </build>
    </project>
    
  • 本地Tomcat

    本地安装Java环境详细步骤

    本地安装Tomcat详细步骤

  • 云服务器Tomcat

    一样在官网下载,下载完用 w i n s c p winscp winscp或者 b t p a n e l btpanel btpanel传到 / o p t /opt /opt下即可

    cd /opt
    tar -zxvf apache-tomcat-10.0.10.tar.gz
    cd /etc/profile.d/
    vim tomcat.sh
      export CATALINA_BASE=/opt/apache-tomcat-10.0.10
      export CATALINA_HOME=$CATALINA_BASE
      export TOMCAT_HOME=$CATALINA_BASE
    source /etc/profile
    

    之后就是对bin/catalina.shconf/server.xml的配置

    下面设计四个端口

    • conf/server.xml中修改 S H U T D O W N SHUTDOWN SHUTDOWN端口,我更改为 8006 8006 8006

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OVqeq4Lt-1631426262038)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912133500918.png)]

    • conf/server.xml中修改 S T A R T U P STARTUP STARTUP端口,也就是访问的端口,我更改为 8007 8007 8007

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OnlpqKvI-1631426262040)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912133602186.png)]

    • bin/catalina.sh中设置 J M X JMX JMX端口,默认就是 1099 1099 1099

    • bin/catalina.sh中设置 D E B U G DEBUG DEBUG端口,我设置为 61711 61711 61711,在脚本中找JPDA_ADDRESS=”8000”,将其修改为 61711 61711 61711即可在这里插入图片描述

      这两个配置,需要在脚本中加入这段话

       JAVA_OPTS="${JAVA_OPTS}-Djava.security.egd=file:/dev/./urandom"
       export CATALINA_BASE=$CATALINA_BASE
       CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=主机IP"
       CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial=" #不写
       CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"
       CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=1099"
       CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
       CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"
       CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.rmi.port=1099"
       CATALINA_OPTS="${CATALINA_OPTS} -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=61711"
       export CATALINA_OPTS
       export JAVA_OPTS
      

    一定要在控制台放行四个端口

    接下来试试启动是否成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FQQpCxK4-1631426262041)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912134455777.png)]

    由于我已经配置新网站了,所以出来的不是欢迎页

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SAzzr8Vv-1631426262042)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912134526813.png)]

    查看端口

    netstat -nlpt
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eoQEVnEs-1631426262043)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912134912302.png)]

    端口全部启动

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5YqiAAeb-1631426262043)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912134936956.png)]

  • IDEA 编辑配置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sMoLU7TZ-1631426262044)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912135553128.png)]

    注意是 T o m c a t   s e r v e r Tomcat \ server Tomcat server 不是 E E EE EE,在这记录一下配置

    热交换器可以做到实时更新[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gh6QKG72-1631426262045)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912135652821.png)]
    应用程序服务器配置,也就是本机的 T o m c a t Tomcat Tomcat,而不是服务器的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mjXF2UjS-1631426262045)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912135729123.png)]

    服务器部署

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZwLeBIZ7-1631426791152)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912140222691.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XlfISmMC-1631426791157)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912140245509.png)]

    退回来,部署的包

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-946oKvaL-1631426791161)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912140410242.png)]

    这里的输出目录最后面我写的 w e b − e x a m p l e s web-examples webexamples代表你项目传在 w e b a p p webapp webapp里的文件夹名在这里插入图片描述
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lLcjQ46a-1631426791162)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912140441835.png)] 设置编译
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZloApxD-1631426791164)(C:\Users\liusy\AppData\Roaming\Typora\typora-user-images\image-20210912140512432.png)]
    接下来启动即可,下面就算成功了(如果弹出的不是你的网站,可以考虑把 R O O T ROOT ROOT文件夹先删了)
    在这里插入图片描述
    更新代码时 D E B U G DEBUG DEBUG即可,或者构建项目,可能需要等一会
    在这里插入图片描述

期间遇到了不少问题,比如无法连接 1099 1099 1099,是因为没有在 c a t a l i n a . s h catalina.sh catalina.sh中配置;或者 1099 1099 1099超时,是没加Dcom.sun.management.jmxremote.rmi.port=1099" D E B U G DEBUG DEBUG不行,是因为没有修改默认端口

网上的教程一定要综合的去看,实在不行去看官方文档是如何配置