繁体   English   中英

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

[英]Java Debugging Deployed Glassfish @PostConstruct Unable to Debug

我可以在NetBeans中调试Java应用程序,并在NetBeans中调试其他项目。 但是,在Glassfish中部署Singleton并在@PostConstruct批注上设置断点时,我无法调试。 我已将目标服务器设置为在其上进行调试,并且已设置了调试器应在其中进行调试的断点,并以调试模式启动了服务器。 但是,我仍然无法在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. 以调试模式启动服务器(打印启动的dt_socket端口时)
  2. 附加调试器Debug->附加调试器...
  3. 设定断点
  4. 部署您的应用

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

您是否用Eclipse尝试过? 我记得,在Eclipse中调试@PostConstruct方法没有问题。

更多值得一提的是:-只要您的应用程序在服务器上存在,@ Singleton bean就会存在...因此,如果要调试其@PostConstruct,我建议您打开glassfish服务器控制台,并使用来自控制台...直到此为止,@ PostConstruct不会被调用,因为bean是容器管理的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM