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

intellij远程调试

远程调试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远程调试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序注册/登录接口开发

文章目录后端有关说明前端有关说明接口设计小程序注册/登录接口APP 注册/登录接口PC Web 端的注册/登录接口小程序注册/登录序列图校验 token后端有关说明 登录和注册的逻辑要独立抽取写成2个接口:注册接口、登录接口 小程序、APP、PC端的登录接口和注册接口要分开…

couchbase_使用Portworx和Couchbase的有状态容器

couchbase容器本应是短暂的,因此可以很好地扩展以用于无状态应用程序。 有状态的容器(例如Couchbase)需要区别对待。 管理Docker容器的持久性概述了如何管理有状态容器的持久性。 该博客将说明如何使用Docker Volume Plugins和Portworx创建有…

在 MyEclipse 中配置 tomcat

在 IDE 配置 tomcat 实则就是让 IDE 来管理 tomcat 配置 步骤 1 点击工具栏上的“Run/Stop/Restart MyEclipse Servers”图标旁边的下拉箭头 步骤 2 选择“Configure Server” 步骤 3 在弹出的对话框“Preferences”中展开“MyEclipse” – “Servers” – “Tomcat”–“To…

java 中怎么加汉字,jquery怎么向body里面增加文字

jquery如何向里面增加文字jsp代码是这样的:我想在页面加载时动态的将一行文字增加到里面,不知道为什么总是加不进去,js代码如下:$(document).ready(function(){if($("#type").val()"MESSAGE") {$(".ke-t…

MacBook 推出移动硬盘时总是提示有程序在使用它,如何解决?

如下图所示: 先使用命令 df -lh 在终端查看当前系统的所有硬盘,命令如下: liaowenxiongliaowenxiongdeMacBook-Air ~ % df -lh Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s5s1 234Gi…

java登录界面命令_Java命令行界面(第5部分):JewelCli

java登录界面命令细算在Java命令行处理与Apache的百科全书CLI , args4j , jbock和命令行中先前的文章,我把注意力转向在这个岗位使用JewelCli完成的命令行参数相似的处理Java中。 几个Java命令行处理库使用批注来定义命令行选项。 到目前为止…

matlab 三维图像配准,[转载]Matlab实现多种图像配准(转)

本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影、仿射、投影、多项式、分段线性、局部加权平均配准的过程。实验平台X86 PC,Windows XP sp2, Matlab 7.1资源的获取matlab工具的使用方法:查看帮助mage Processing Toolb…

oauth2和jwt_OAuth2,JWT,Open-ID Connect和其他令人困惑的事物

oauth2和jwt免责声明 如果觉得我必须从一个重要的免责声明开始这篇文章: 不要太相信我要说的话。 我之所以这样说,是因为我们正在讨论安全性。 而且, 当您谈论安全性时,除了100%正确的陈述外,还有冒任何其他…

matlab的exec程序,C++调用Matlab画图的一段程序

劳动节闲来无事,写了一天程序,just for fun.看,这是C调用Matlab画图的一段程序。暂时不想多解释了,有兴趣的话,看看下面的代码吧。以下几段代码由上到下,越来越旧。最上面的是最新更新的版本。#include#inc…

java args_Java命令行界面(第2部分):args4j

java args在上一篇文章中 ,我研究了使用Apache Commons CLI在Java应用程序中解析命令行参数。 在本文中,我将使用另一个库args4j进行相同的操作。 args4j采用了一种不同于Commons CLI的方式来指定Java应用程序应期望的命令行参数。 尽管Commons CLI期望…

apache camel_Apache Camel中的短重试与长重试

apache camel《骆驼设计模式》一书介绍了20种模式以及用于设计基于Apache Camel的集成解决方案的众多技巧和最佳实践。 每种模式都基于真实的用例,并提供了Camel特定的实现细节和最佳实践。 为了让您有这本书的感觉,以下是该书的重试模式摘录&#xff0c…

mega5安装包_[MEGA DEAL] 2017年完全Java捆绑包(95%折扣)

mega5安装包深入了解编程奥德赛(58小时!),进入最常用的编程语言 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了一个极端的报价 。 我们提供的2017 Complete Java Bundle 仅…

matlab计算微分ppt,matlab-ch013(数值计算-微积分)20090923.ppt

matlab-ch013(数值计算-微积分)20090923.ppt 第13讲 数值计算 —微积分,张建瓴,13.1 数值积分,在工程教学和应用中,除了进行数据逼近外,还要求逼近曲线下面的面积,这就是积分问题。,一、数值积分方法,典型的数值积分方法有:用常数…

JDK 9中不推荐使用Java的Observer和Observable

在博客文章《 应用JDK 9 Deprecated增强功能》中 ,我讨论了JDK 9中 Deprecated批注中对forRemoval()和since()可选元素(方法)的添加 。 我在那篇文章中说:“在Java SE API上应用新的…

WorkPlus一站式协同解决方案,助力企业降本增效

在企业数字化转型的过程中,很多企业都会遇到一个共同问题:重复建设基础功能,耗费大量时间和资源。为解决这一难题,WorkPlus已经将一些通用、基础且有技术门槛的功能进行了集成与开发,如IM(即时通讯&#xf…

linux在oracle新建表,Oracle创建表及管理表

1. Oracle表的创建及管理创建表包括三个要素,表名,列名,数据类型。每个表都有对应不同的列,每个列都有唯一对应的数据类型。常用数据类型简介:数据类型描述CHARACTER(n)字符/字符串。固定长度 n。INTEGER(p)整数值(没有…

Linux 命令之 top -- 实时显示进程动态/查看进程信息

文章目录介绍常用选项交互命令参考示例示例 1:直接输入命令 top 就可以动态显示进程信息统计参数信息详解进程属性说明(即进程列表的字段说明)其它1.在 top 基本视图中,按键盘数字 1 可以监控每个逻辑 CPU 的状况2.敲击键盘 b&…

oracle同步恢复目录,Oracle创建恢复目录(catalog)

Oracle创建恢复目录(catalog),在catalog数据库上创建cat用户的表空间。Oracle创建恢复目录1.在catalog数据库上创建cat用户的表空间SQL> create tablespace cat datafile /home/oracle/oradata/orcl/cat.dbf size 512M;2.创建cat用户SQL> Create user cat ide…

java登录界面命令_Java命令行界面(第3部分):jbock

java登录界面命令在本系列中有关使用Java进行命令行分析的前两篇文章中,我介绍了Apache Commons CLI和args4j库。 在本系列的第三篇文章中,我介绍了jbock ,它是自我描述的“非常简单的CLI解析器”。 我在Java命令行解析中的帖子使用了一些示…

java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

java中转json字符串在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON。 这是在Java中测试和学习解析JSON字符串的最快方法,但…