我可以在NetBeans中调试Java应用程序,并在NetBeans中调试其他项目。但是,在Glassfish中部署Singleton并在@PostConstruct注释上设置断点时,我无法进行调试。我已将目标服务器设置为debug on并设置调试器应调试的断点,并以调试模式启动服务器。但是,我仍然无法在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)以调试模式启动服务器 5)" init"在NetBeans中的控制台中打印但我无法调试。
我尝试在许多不同的端口上附加调试器,但我要么拒绝连接,要么无法调试。
我正在使用NetBeans 1.7.2。我已经尝试过与其他版本的NetBeans相同但仍然存在同样的问题。
以上只是示例代码,但代码更多,但我无法调试。我无法在Google上找到任何解决方案。
你可以尝试一下吗?
答案 0 :(得分:1)
你必须:
@PostConstruct在部署期间被调用,因此您提供的步骤顺序不正确,因为在您附加到调试器之前调用了代码。
答案 1 :(得分:0)
你有没有尝试使用eclipse? 我记得,我在eclipse中调试@PostConstruct方法时没有问题。
更多的事情要提到: - 只要您的应用程序存在于服务器上,@ Singleton bean就会存在...所以如果您想调试它的@PostConstruct,我建议打开glassfish服务器控制台,并使用控制台中的禁用应用程序选项......直到,@PostConstruct不会被调用,因为bean是容器管理的......