Java Intellij调试器不会在断点处停止

Java Intellij调试器不会在断点处停止,java,intellij-idea,maven-3,weblogic12c,Java,Intellij Idea,Maven 3,Weblogic12c,我一定是做错了什么。我是intellij的新手。从eclipse切换。我有一个在weblogic上运行的JAX WS应用程序。要部署的工件是一个ear文件。我一直在努力让intellij上的调试器工作。我有终极版。我确实创建了一个运行调试配置,但它只是通过代码,并没有在我想要的位置停止。调试器显示一个没有复选框或十字的红点 编辑-我正在运行“本地”运行/调试配置 下面是我的运行/调试配置的屏幕截图 以下是启动/连接的屏幕截图 要在IntelliJ上设置WebLogic调试,请执行以下操作: 查

我一定是做错了什么。我是intellij的新手。从eclipse切换。我有一个在weblogic上运行的JAX WS应用程序。要部署的工件是一个ear文件。我一直在努力让intellij上的调试器工作。我有终极版。我确实创建了一个运行调试配置,但它只是通过代码,并没有在我想要的位置停止。调试器显示一个没有复选框或十字的红点

编辑-我正在运行“本地”运行/调试配置

下面是我的运行/调试配置的屏幕截图

以下是启动/连接的屏幕截图


要在IntelliJ上设置WebLogic调试,请执行以下操作:

  • 查找WebLogic调试端口:这是WebLogic上公开用于调试的端口。默认调试端口是8453,但如果它被更改,您可以在config.xml(在域主目录的config文件夹下)或setDomainEnv.sh中找到它以查找调试端口(我假设它是.sh而不是.bat,因为您似乎正在使用Mac OS X)

  • 远程调试器配置:转到配置并选择“新建”,然后选择“远程”,在端口(图像中的橙色块)下键入在1中找到的值。对于主机(绿色块),键入localhost[旁注:如果调试端口是公开的,您可以通过键入服务器主机名或IP连接到远程服务器]

  • 启动调试器:启动您刚刚设置的调试配置,调试窗口将弹出,如果端口正确,它将显示它已连接到远程主机,您可以进行调试
  • --编辑1--

    再次阅读您的问题,遗漏了关于您已经设置了远程配置的部分

    如果您的程序是多线程的,则可能缺少断点。您当前所在的线程上可能未命中断点

    当远程配置工作时,调试器中有一个下拉菜单,您应该能够选择要调试的线程

    --编辑2--


    添加了远程调试器设置的映像

    我发现了我的问题所在,我认为问题是我和应用程序的性质所特有的。事实上,我应该称之为自我诱导的问题。让我解释一下事件的性质

  • 我一直在使用eclipse开发并在本地安装weblogic实例。我的应用程序需要一致性缓存服务器,并且我在启动域时传递的其他JVM参数很少。因此,我在
    $DOMAIN\u HOME/bin/setdomainev.sh
    文件的开头添加了一行,如下所示

    JAVA_OPTIONS=“-Dtangosol.coherence.distributed.localstorage=false-Dtangosol.coherence.wka=devmachine等等

  • 我切换到intellij,开始做这个项目,然后配置weblogic插件和运行配置等

  • 我注意到intellij在运行/调试配置中的启动/连接选项卡中添加了JAVA_选项,就像这样
  • 但是intellij传递的JAVA_选项没有被weblogic使用,我相信它被setDomainEnv.sh中的内容覆盖了,这就是我看到以下日志的原因
  • java版本“1.6.0_65”
    Java(TM)SE运行时环境(构建1.6.0_65-b14-466.1-11M4716)
    Java HotSpot(TM)64位服务器虚拟机(构建20.65-b04-466.1,混合模式)
    以行开始WLS:
    /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/lib/weblogic.policy-Dtangosol.coherence.distributed.localstorage=false-Dtangosol.coherence.wka=dev机器胡说八道……

  • 当我从setDomainEnv.sh中删除JAVA_选项并从intellij重新启动服务器时,我看到了以下日志
  • 使用Java版本启动weblogic:
    java版本“1.6.0_65”
    Java(TM)SE运行时环境(构建1.6.0_65-b14-466.1-11M4716)
    Java HotSpot(TM)64位服务器虚拟机(构建20.65-b04-466.1,混合模式)
    以行开始WLS:
    /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=dt=dt\u socket,address=127.0.1:65501,suspend=y,server=n

    现在,日志显示jdwp代理正在运行。我确实注意到,在我提出这个问题之前,我没有看到这个特定的日志,但我认为IntelliJ可能在封面内做了一些事情,因为JAVA_选项正在被传递,IntelliJ不允许您处理它(它是只读的)

    我想我可以从intellij传递所有jvm参数,或者在setDomainEnv.sh中添加jdwp代理信息


    现在我可以调试了。

    删除配置并创建一个新配置为我解决了问题。

    8bitme-感谢您的回答。我将继续编辑我的问题,说我使用的运行/调试配置是本地的,而不是远程的。如果您看到第二个屏幕截图,我相信intellij正在通过weblogic的端口公开它是预填充的,我相信我没有办法改变它。其次,不,它不是多线程的。没问题,它叫做“远程”“但它仍然用于调试Weblogic的本地实例,只要远程配置中的主机是本地主机,它就会指向您的本地Weblogic实例。要添加到该配置中,您似乎要使用的配置是控制应用程序服务器,而不是调试它。”。我将添加屏幕截图