我有一个由三个 Web 项目组成的 Java EE 5 应用程序。我正在使用 JBoss 5.1 Web 服务器和 NetBeans 7.2 IDE。
我有以下问题:
我无法在调试模式下启动应用程序。据我所知,NetBeans 和 Java 中有两种(最好的)方法:远程调试和通过共享内存进行调试。我读了这篇文章如何在 netbeans 中调试 JBOSS 应用程序?我在 Jboss 配置中设置了调试参数(我也知道共享内存和远程调试有不同的参数集),但是当我去附加调试器时,我得到了以下错误:
如果我使用远程调试,我会收到错误“连接被拒绝”;
如果我使用共享内存,我会收到类似于此文本“dt_shmem:找不到文件路径”的错误。
当我通过运行 run.bat 文件启动 JBoss 时会发生这些错误。如果我从 Netbeans IDE 启动 JBoss,我可以附加到远程进程(共享内存方法仍然存在问题),但是我还有其他问题,关于页面生命周期中的变量原语和模型绑定(我现在不会写) .
如何解决这些问题以便调试应用程序?至少,当它失败时,我怎样才能找到更好的错误消息。通过仅查找“连接被拒绝”错误,我无法在网上找到太多信息。
- 为什么我不能只按运行主项目(或 Web 项目)并让 netbeans 启动应用程序,在新的浏览器选项卡(作为 localhost)中打开它并启动调试模式?我来自 .net 背景,VS 将其作为开箱即用的工具(称为 ASP .NET 开发服务器)提供。为什么我必须使用外部 Web 服务器并且每次更改都部署新应用程序然后附加到它?为什么 Netbeans 默认不能使用 JVM 来运行应用程序,而以后我部署应用程序时我会选择使用哪个 Web 服务器!?
我希望有人能对我说清楚:)
谢谢
在 2013 年 1 月 3 日添加了注释。
好吧,当我在 web 项目的 project.properties 文件中更改 VM 选项时(添加了 run.args.extra=-J-Xms256m -J-Xmx756m),我在执行代码时成功调试了应用程序和热断点。但是,托管 Bean 属性仍然存在奇怪的问题。我在页面上有选择列表,它连接到布尔属性。当没有选择任何内容时,它应该默认设置为 null 值(当我通过运行 run.bat 文件启动 JBoss 服务器时),但它的值默认设置为 false!我在firebug中检查了参数发布值,将参数发布到bean没有问题。在我看来,问题在于 JSF 框架试图将 post 值映射到托管 Beans 属性,但我不知道为什么会发生这种情况。我还检查了 faces-config.xml,但没有找到映射到这个特定属性的任何特定规则。有小费吗?