远程调试Java应用程序意味着使用本地开发环境连接到远程运行的应用程序。 Java开箱即-agentlib:jdwp[=options]支持远程调试:目标应用程序必须使用-agentlib:jdwp[=options]选项执行, -agentlib:jdwp[=options]选项加​​载Java调试线协议(jdwp)库,该库允许使用例如套接字连接的远程调试。 在这篇简短的文章中,您将学习如何使用IntelliJ调试部署到Wildfly服务器的Web应用程序。

应用程序

出于演示目的,可以使用一个非常简单的应用程序:它包含一个(入门)JSP文件和一个Java Servlet:

Wildfly应用服务器

在此示例中,您可以使用仅Wildfly Servlet分发。 从这里获取: http : //wildfly.org/downloads/

配置Wildfly进行远程调试

下载并提取服务器后,请执行以下步骤:

  • 编辑WILDFLY_HOME/standalone/configuration/standalone.xml并将管理控制台的套接字绑定端口从9990更改为9991 (可以在socket-binding-group元素中找到)。 使用默认端口设置,您将在运行服务器时看到异常:
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.serverManagement.controller.management.http: org.jboss.msc.service.StartException in service jboss.serverManagement.controller.management.http: java.net.BindException: Address already in use: bind /127.0.0.1:9990
  • 导航到WILDFLY_HOME/bin并使用--debug参数运行standalone.bat (Windows)或standalone.sh (Linux)。 此参数将强制服务器以调试模式运行,从而启用远程调试。 在控制台启动期间,您会注意到传递给JVM的额外参数:
JAVA_OPTS: "-client -Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"

命令: agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n加载jwdp库并在端口8787上侦听套接字连接。

  • 通过将WAR文件复制到WILDFLY_HOME/standalone/deployments来部署应用程序(例如webapp-demo.war )。 验证应用程序已部署。

IntelliJ中的远程调试Wildfly应用程序

假设应用程序运行正常,请在IntelliJ中打开此应用程序的源代码以对其进行远程调试。 为此,您需要为项目创建一个运行配置。

  • 打开Run > Edit configurations并添加新配置。 在可用配置列表中找到JBoss ,然后选择Remote 。 如果尚未配置应用程序服务器,请通过将JBoss主页指向您的Wildfly安装目录( WILDFLY_HOME )进行配置:

  • 现在更改配置的一些默认设置并保存。 在Server选项卡中将Management port设置为9991 ,在Startup/Connection选项卡中将Port设置为8787以进行Debug配置:

  • 运行调试配置,然后等待IntelliJ连接到Wildfly服务器。
  • 在要调试的Java Servlet(例如MyServlet.java )或任何JSP文件中设置断点,然后在服务器上执行代码,例如,通过调用有效的Servlet URL。 等待调试器达到断点:

享受IntelliJ中的远程调试Wildfly应用程序!

翻译自: https://www.javacodegeeks.com/2017/06/remote-debugging-wildfly-application-intellij.html

IntelliJ中的远程调试Wildfly应用程序相关推荐

  1. intellij远程调试_IntelliJ中的远程调试Wildfly应用程序

    intellij远程调试 远程调试Java应用程序意味着使用本地开发环境连接到远程运行的应用程序. Java开箱即-agentlib:jdwp[=options]支持远程调试:目标应用程序必须使用-a ...

  2. 【flink】Flink 使用IntelliJ IDEA 进行远程调试代码

    1.概述 转载:Flink 使用IntelliJ IDEA 进行远程调试代码 改文章和 95-070-040-源码-源码调试-FLINK源代码调试方式 重复了. Flink on Yarn 不好调试, ...

  3. 使用 Eclipse 远程调试 Java 应用程序

    转载地址:使用 Eclipse 远程调试 Java 应用程序 远程调试对应用程序开发十分有用.例如,为不能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务不能中断的 Web 服务器)调试程序 ...

  4. pycharm + docker 远程调试容器内程序

    pycharm + docker 远程调试容器内程序 一.首先假设你已启动了一个docker容器,并在启动时将容器的22端口映射到宿主机的10022端口 启动示例: nvidia-docker run ...

  5. [免费专栏] ATTACK安全之检测车机中ADB远程调试控制Android系统攻击

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 ATTACK付费专栏长期更新,本篇最新内容请前往: [车联网 ...

  6. 04-20.eri-test GKE(Google K8S Engine)上的Intellij远程调试Java应用程序

    Prepare the docker image 为了调试Java应用程序,我们需要向远程应用程序添加一些命令行参数. 在kubernetes部署有效负载中设置参数 DEBUG_OPTIONS=&qu ...

  7. VS.net中的远程调试

    简介: 我们开发完一个软件后,提交给客户或者放到服务器上执行,如果有问题,我们可以使用远程调试进行发现bug. 这篇文字简单介绍一下远程调试. vs.net远程调试服务 在vs.net的安装目录下,有 ...

  8. Hadoop 使用IntelliJ IDEA 进行远程调试代码

    . 一 .前言 二 .服务器端配置. 2.1. 设置启动远程debug端口 2.2. 具体操作 三 .Idea配置 3.1. 根据报错信息定位到断点所在的位置 3.2. 配置远程连接 3.3. 启动调 ...

  9. idea远程调试Java应用程序

    在启动的程序中加入参数 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8087 例:java -jar -Xdebu ...

最新文章

  1. 人类为什么会同情机器人,是否需要禁止虐待机器人
  2. SpringBoot 之 普通类获取Spring容器中的bean
  3. 再谈CVE-2017-7047 Triple_Fetch和iOS 10.3.2沙盒逃逸
  4. error:“ACCESS_MASK”: 不明确的符号
  5. [转]ECMAScript 6 入门 -编程风格
  6. android4.2添加重启菜单项
  7. c#读蓝牙数据_客户端实现蓝牙接收(C#)知识总结
  8. java integer reverse_Leetcode7 Reverse Integer Java实现及分析
  9. django 1.8 官方文档翻译: 6-6-4 部署静态文件
  10. sqlserver 操作技巧
  11. 安卓rom制作教程_安卓手机TWRP_Recovery卡刷图文教程 适用于卡刷ROM,TWRP救砖
  12. 关于MAC解决jupyter中出现nbconvert failed/ xelatex not found on path报错
  13. ora 01033 linux,ORA-01033: ORACLE initialization or shutdown in progres
  14. Win11将输入法的繁体改为简体
  15. 神奇的识别图片文字代码
  16. Mac电脑上如何添加打印机
  17. 安卓代替苹果的软件_苹果健身可以代替您的健身房或贵宾会员吗
  18. thinkphp配置mysql集群_ThinkPHP教程_PHP框架之ThinkPHP(五)【连接数据库与主从数据库设置】...
  19. 计算机表演赛所选赛区,第十六届全国中小学学生计算机表演赛邢台赛区评选结果.doc...
  20. sqlserver找不到存储过程

热门文章

  1. sleep( ) 和 wait( ) 的这 5 个区别,你知道几个
  2. 什么是 TCC分布式事务
  3. 如何使用jstack分析线程状态
  4. Oracle入门(十三A2)之单行函数
  5. Spring开启方法异步执行
  6. 解决idea中xml文件报红问题
  7. 将数组前n个和后m-n个整体逆置的实现
  8. vue中如何实现全全全屏和退出全屏?
  9. 最全、最详细的配置jdk十步法!
  10. oracle基本笔记整理及案例分析1