Intellij 调试器不会在断点处停止
我一定是在这里做错了什么。我是intellij的新手。从日食切换。我有一个在 weblogic 上运行的 JAX WS 应用程序。要部署的工件是 ear 文件。我一直在努力让intellij上的调试器工作。我有终极版。我确实创建了一个运行调试配置,但它只是传递代码,并没有在我所需的位置停止。调试器显示一个不带复选或叉号的红点。
编辑 - 我正在运行“本地”运行/调试配置。
下面是我的运行/调试配置的屏幕截图。
这是启动/连接的屏幕截图
我一定是在这里做错了什么。我是intellij的新手。从日食切换。我有一个在 weblogic 上运行的 JAX WS 应用程序。要部署的工件是 ear 文件。我一直在努力让intellij上的调试器工作。我有终极版。我确实创建了一个运行调试配置,但它只是传递代码,并没有在我所需的位置停止。调试器显示一个不带复选或叉号的红点。
编辑 - 我正在运行“本地”运行/调试配置。
下面是我的运行/调试配置的屏幕截图。
这是启动/连接的屏幕截图
我弄清楚了我的问题是什么,我认为这个问题是特定于我和我的应用程序的性质。实际上,我应该称之为自我诱导的问题。让我解释一下事件的性质。
我一直在使用eclipse来开发和本地安装weblogic实例。我的应用程序需要一致性缓存服务器,并且我在启动域时传递的其他 JVM 参数很少。因此,我在文件开头添加了一行,如下所示$DOMAIN_HOME/bin/setDomainEnv.sh
JAVA_OPTIONS="- Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.wka=devmachine and blah blah blah
我切换到intellij并开始处理这个项目,然后配置weblogic插件并运行配置等。
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Starting WLS with line:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -client -Xms512m -Xmx512m -XX:MaxPermSize=256m -Dweblogic.Name=AdminServer -Djava.security.policy=/Users/dparupud/omw/oracle/middleware/weblogic_10.3.6/wlserver_10.3/server/lib/weblogic.policy -Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.wka=devmachine blah blah blah......
starting weblogic with Java version:
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Starting WLS with line:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -client -Xms512m -Xmx512m -XX:MaxPermSize=256m -Dweblogic.Name=AdminServer -Djava.security.policy=/Users/dparupud/omw/oracle/middleware/weblogic_10.3.6/wlserver_10.3/server/lib/weblogic.policy -
agentlib:jdwp=transport=dt_socket,address=127.0.0.1:65501,suspend=y,server=n
现在日志显示 jdwp 代理正在运行。我确实注意到,在我提出SO问题之前,我没有看到那个特定的日志,但我认为也许IntelliJ正在封面内做一些事情,因为JAVA_OPTIONS正在通过,而intellij不允许你搞砸它(它是只读的)。
我想我可以从intellij传递所有jvm参数,也可以在 setDomainEnv.sh 中添加jdwp代理信息。
现在我能够调试。
要在 IntelliJ 上设置 WebLogic 调试,请执行以下操作:
查找 WebLogic 调试端口:这是 WebLogic 上公开用于调试的端口。默认的调试端口是8453,但如果它被更改,你可以在config.xml(在域主目录的config文件夹下)或 setDomainEnv.sh 找到它,DEBUG_PORT(我假设它是.sh而不是.bat,因为你似乎在使用Mac OS X)。
远程调试器配置:转到配置并选择“新建”,然后选择“远程”,键入任何合理的名称,然后在端口(图像中的橙色块)下键入您在1中找到的值。对于主机(绿色块),键入 localhost [旁注:如果暴露调试端口,则可以通过键入该服务器主机名或 IP 来连接到远程服务器]。
--编辑 1--
再次阅读您的问题,错过了有关您已经设置远程配置的部分。
如果您的程序是多线程的,则可能会丢失断点,因此可能无法在您所在的当前线程上命中断点。
当您使用远程配置工作时,调试器中有一个下拉列表,您应该能够在其中选择要调试的线程。
- 编辑2 -
添加了远程调试器设置的图像