Java 调试部署的 Glassfish @PostConstruct 无法调试

标签 java debugging netbeans glassfish-3

我可以在 NetBeans 中调试 Java 应用程序,并且已经在 NetBeans 中调试了其他项目。但是,当在 Glassfish 中部署单例并在 @PostConstruct 注释上设置断点时,我无法调试。我已设置要调试的目标服务器,并设置了调试器应从中进行调试的断点,并以 Debug模式启动服务器。但是,我仍然无法在 NetBeans 中进行调试。下面是代码:

@Startup
@Singleton
public class Listener {

    @PostConstruct
    public void init() {
        System.out.println("init");   
    }
}

我在 System.out.println("init") 语句上设置了断点。我遵循的步骤是:

1) 构建Jar文件 2)启动Glassfish服务器 3)部署Jar文件 4)以 Debug模式启动服务器 5) NetBeans 的控制台中打印了“init”,但我无法调试。

我尝试在许多不同的端口上附加调试器,但要么连接被拒绝,要么无法调试。

我使用的是 NetBeans 1.7.2。我已经对其他版本的 NetBeans 进行了相同的尝试,但仍然存在同样的问题。

上面只是示例代码,还有更多代码但我无法调试。我在 Google 上找不到任何解决方案。

你能尝试一下吗?

最佳答案

你必须:

  1. 以 Debug模式启动服务器(启动时打印 dt_socket 端口)
  2. 附加调试器调试 -> 附加调试器...
  3. 设置断点
  4. 部署您的应用

@PostConstruct 在部署期间被调用,因此您提供的步骤顺序不正确,因为代码是在附加到调试器之前调用的。

关于Java 调试部署的 Glassfish @PostConstruct 无法调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23649051/

相关文章:

java - 如何让自定义 javadoc 标记出现在 netbeans 的自动完成 javadoc 中?

iphone - 找出 nsrangeException 的来源

javascript - 如何从 Angularjs 内联模板脚本标记内打印到 console.log?

java - 我尝试启动的每个 java 程序都显示错误

Java - 设计一组 Swing 组件并动态添加该组组件

android - IBM Worklight - 如何在 Android 中启用 WebView 调试?

java - Spring非托管对象的 Autowiring

java - java中带有环绕边缘的二维数组类

java - 我应该选择 Spring 还是坚持使用 Java EE 6?

java - 解压文件真的很慢