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

时间:2015-05-06 21:39:38

标签: java intellij-idea maven-3 weblogic12c

我必须在这里做错事。我是intellij的新手。从日食中切换。我有一个在weblogic上运行的JAX WS应用程序。要部署的工件是ear文件。我一直在努力让intellij工作的调试器。我有终极版。我确实创建了一个运行调试配置,但它只是通过代码而不是停在我想要的位置。调试器显示没有检查或交叉的红点。

编辑 - 我正在运行"本地"运行/调试配置。

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

enter image description here

以下是启动/连接

的屏幕截图

enter image description here

3 个答案:

答案 0 :(得分:8)

我弄清楚我的问题是什么,我认为问题是针对我和我的应用程序的性质。实际上我应该称之为自我引发的问题。让我解释事件的本质。

  1. 我一直在使用eclipse进行开发并在本地安装weblogic实例。我的应用程序需要一致性缓存服务器,并且我在启动域时几乎没有其他JVM参数。因此,我在$DOMAIN_HOME/bin/setDomainEnv.sh文件的开头添加了一行,如此

    JAVA_OPTIONS="- Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.wka=devmachine and blah blah blah

  2. 我切换到intellij并开始处理这个项目,然后配置weblogic插件并运行配置等。

  3. 我注意到intellij在运行/调试配置启动/连接标签中添加了JAVA_OPTIONS,如此
  4. enter image description here

    1. 然而,weblogic没有使用intellij传递的JAVA_OPTIONS。我相信它被setDomainEnv.sh中的内容覆盖了,这就是我看到以下日志的原因。
    2. <强> 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......

      1. 当我从setDomainEnv.sh中删除JAVA_OPTIONS并从intellij重新启动服务器时,我看到了以下日志
      2. 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不允许你搞砸它(它是readonly)。

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

        现在我可以调试了。

答案 1 :(得分:4)

在IntelliJ上设置WebLogic调试:

  1. 查找WebLogic调试端口:这是WebLogic上用于调试的端口。默认的调试端口是8453但是如果它被更改了你可以在config.xml中找到它(在你的域home中的config文件夹下)或者setDomainEnv.sh找到DEBUG_PORT(我假设它是.sh而不是.bat as您似乎正在使用Mac OS X)。

  2. 远程调试器配置:转到配置并选择新配置,然后选择&#34; Remote&#34; ,键入任何合理的名称,并在端口下(图像中的橙色块)键入您在1中找到的值。对于主机(绿色块),键入localhost [旁注:您可以通过键入连接到远程服务器如果调试端口被暴露,那么服务器主机名或IP。

  3. 启动调试器:启动刚刚设置的调试配置,将弹出调试窗口,如果端口正确,则说它已连接到远程主机,您可以进行调试。
  4. IntelliJ remote Debugger

    - 编辑1 -

    再次阅读你的问题,错过了关于你已经设置了远程配置的部分。

    如果您的程序是多线程的,可能会丢失断点,断点可能不会在您当前的线程上被点击。

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

    - 编辑2 -

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

答案 2 :(得分:0)

删除配置并创建一个新配置可以解决我的问题。