最近在做的一个东西,测试环境和本地环境差距太大,本地能运行的代码,放到测试环境上到处报错,哪里哪里都连不上,所以决定把代码部署到远程服务器上调试,节省时间。

网上看了很多教程,大部分都是互相抄来抄去,照做了也调不通,所以决定把自己的步骤发上来,但是不会对这些步骤作详细解释,需要明白原理的童鞋请自行百度...


远程环境:debian 7 ,tomcat7 , jdk1.8

本地:win7,tomcat7,jdk1.8,idea2017

默认jdk均已安装好。

1.远程tomcat配置:

部署在/home/YOUR_USERNAME/apache-tomcat-7.0.82

  • conf/server.xml

  这个文件里要配置的东西其实不多。

<Connector port=" protocol="HTTP/1.1"
               connectionTimeout="
               redirectPort=" />
<!--  这里是如果不想使用默认的8080端口 改成12345 ajp什么的同理-->
  • bin/catalina.sh

  这个文件里在开头加三行:

export CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12347 ##这个地方是jmx调试端口,需要和idea对应,下文会说明
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=debian"

export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=56723,suspend=n,server=y" ##这里的address也要和idea里的对应

export JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=12347 ##同上一个12347
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false -Xdebug"

然后,启动tomcat: bin/catalina.sh jpda start

注意 不要用其他命令启动

2.idea相关配置

  • 第一处,本地要有和远程服务器上完全相同的tomcat版本
  • 第二处,浏览器的位置填的是http://远程服务器:端口号
  • 第三处,jmx端口,要跟catalina.sh里面填的端口相同
  • 第四处,staging方式,我选的是用sftp上传到远程环境上,这种方式要求远程服务器开启了ssh并且配置了sftp服务,这里可以根据你怎么方便怎么来。sftp这里host后面的那三个点点开后的配置里只用填第一个tab,后面空着。path from root 是/apache-tomcat-7.0.82/webapps ,mapped as是/home/YOUR_USERNAME/apache-tomcat-7.0.82/webapps,因为我在设定host时,设定root是/home/YOUR_USERNAME/。
  • 第五处,host就是远程主机名,port就是之前在connector中定义的端口号。
  • 最后,before launch的选项卡下,build artifact时选 war,不要选war exploded

3.之前的catalina.sh中配置的

export JPDA_OPTS=

这一行,实际上是和idea的以下部分对应:

OK,接下来就可以在程序中打断点,并且开启调试了。

idea 远程调试 tomcat web应用的更多相关文章

  1. 远程调试 Azure Web App

    当我们将 Web App 部署在 Azure 上时,如果能够实现远程调试,将会极大的提高我们修复 bug 的效率.Visual Studio 一贯以功能强大.易用著称,当然可以实现基于 Azure 应 ...

  2. 如何用myeclispe远程调试tomcat

    如何用myeclispe远程调试tomcat 在工作开发中,通常用本机进行代码编写,然后将编好的工程部署到测试服务器进行测试.往往测试服务器并不是自己的本机,因此对调试带来众多不便.今天学习可以用my ...

  3. idea远程调试tomcat

    在开发Spring Boot应用的时候,会发现有的时候在idea工具中运行程序和打包程序后在tomcat下运行程序的结果会不太一样,因此就需要远程调试tomcat. 首先在tomcat目录下的bin目 ...

  4. VS 远程调试 Azure Web App

    如果能够远程调试部署在 Azure 上的 Web App,将会极大的提高我们修复 bug 的效率.Visual Studio 一贯以功能强大.好用著称,当然可以通吃基于 Azure 应用的创建.发布和 ...

  5. MyEclipse远程调试Tomcat

    程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样.于是就灰常想看一下程序在远程运行时候的状态,希望让程序在远程运行,还可以在 ...

  6. 二十八、详述 IntelliJ IDEA 远程调试 Tomcat 的方法

    在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...

  7. IntelliJ IDEA 远程调试 Tomcat 的方法

    在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...

  8. 详述 IntelliJ IDEA 远程调试 Tomcat 的方法

    首先,配置remote: 如上图所示,点击Edit Configurations,进入如下界面: 如上图所示,我们进入了Run/Debug Configurations界面,然后点击左上角的+,选择R ...

  9. MyEclipse 远程调试Tomcat

    当Web项目部署在服务器之后,当项目出现问题的时候就需要远程调试[远程调试的代码要与本地代码一致] 配置远程调试的具体步骤如下: 1.Linux 中配置tomcat在catalina.sh中添加如下C ...

随机推荐

  1. SEO的基本概念 和 提交SITEMAP到搜索引擎

    SEO的基本概念 SEO的基本概念 :我们接触的SEO主要就是做搜索引擎的优化,让搜索引擎更好地收录 我们的网站,不管是首页还是内页,都能有很好的收录和排名.那么我们经常用到的SEO的语句是什么呢?小 ...

  2. [Spark内核] 第40课:CacheManager彻底解密:CacheManager运行原理流程图和源码详解

    本课主题 CacheManager 运行原理图 CacheManager 源码解析 CacheManager 运行原理图 [下图是CacheManager的运行原理图] 首先 RDD 是通过 iter ...

  3. HDFS Architecture

    http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html Introduction Ha ...

  4. Spring Cloud Consul入门

    1. Consul介绍 Consul是一套开源的分布式服务发现和配置管理系统,支持多数据中心分布式高可用.Consul是HashiCorp( Vagrant的创建者)开发的一个服务发现与配置项目,用G ...

  5. Hadoop 新生报道(四) WordCount

         WordCount是hadoop里hello word级的第一个程序,作为一个萌新,我也来跑一跑这个,附带针对新人的说明.      所谓WordCount,就是统计一个或几个文档中相同的单 ...

  6. Windows和Linux下换行的不同

    因为测试IM会用到一些账号,于是写了一段代码从数据库里把需要的用户名.密码和手机号都一一取了出来,然后放到NotePad++中做进一步的处理. 取用户名.手机号和密码的代码如下: public cla ...

  7. 实体处理模块IEntityModule

    在2015年7月16日,XCode新增了实体处理模块IEntityModule,用于拦截实体对象添删改操作. 该接口参考IHttpModule设计理念,横切在实体对象的关键生命周期之中,以达到多实体类 ...

  8. 基于 HTML5 的电力接线图 SCADA 应用

    在电力.油田燃气.供水管网等工业自动化领域 Web SCADA 的概念已经提出了多年,早些年的 Web SCADA 前端技术大部分还是基于 Flex.Silverlight 甚至 Applet 这样的 ...

  9. 内核知识第八讲,PDE,PTE,页目录表,页表的内存管理

    内核知识第八讲,PDE,PTE,页目录表,页表的内存管理 一丶查看GDT表. 我们通过WinDbg + 虚拟机可以进行双机调试.调试一下看下GDT表 我们知道,GDT表中.存储的是存储段信息. 保存了 ...

  10. Java与算法之(9) - 直接插入排序

    直接插入排序是最简单的排序算法,也比较符合人的思维习惯.想像一下玩扑克牌抓牌的过程.第一张抓到5,放在手里:第二张抓到3,习惯性的会把它放在5的前面:第三张抓到7,放在5的后面:第四张抓到4,那么我们 ...