Eclipse JSF托管bean修改后重新部署应用程序

Eclipse JSF托管bean修改后重新部署应用程序,eclipse,jsf,deployment,managed-bean,Eclipse,Jsf,Deployment,Managed Bean,为什么JSF管理的bean修改需要重新部署应用程序才能生效 发展环境: 靛蓝月食 JBossAS7 JBossAS工具 进一步解释: 如果我修改一个JSF页面,我可以在刷新页面后可视化修改。但JSF管理的bean修改并非如此,我必须重新部署应用程序以可视化它们。Eclipse/JBoss无法在hotpublish/hotdeploy期间处理新的类、方法或字段。但是,它们可以在JVM热交换的帮助下处理修改过的方法体和非静态字段的值 插件能够在热部署期间处理新的类、方法和字段,但不能处理新的托管

为什么JSF管理的bean修改需要重新部署应用程序才能生效

发展环境:

  • 靛蓝月食
  • JBossAS7
  • JBossAS工具
进一步解释:


如果我修改一个JSF页面,我可以在刷新页面后可视化修改。但JSF管理的bean修改并非如此,我必须重新部署应用程序以可视化它们。

Eclipse/JBoss无法在hotpublish/hotdeploy期间处理新的类、方法或字段。但是,它们可以在JVM热交换的帮助下处理修改过的方法体和非静态字段的值

插件能够在热部署期间处理新的类、方法和字段,但不能处理新的托管bean注册

请注意,这一切都与JSF无关。它通常与Java开发相关,因此也会影响到所有其他类型的Java框架/库,您基本上会尝试“实时”编辑这些框架/库的代码

另见:

我像这个项目一样解决->自动构建

实际上我用修改过的字段尝试了它,Eclipse/JBoss没有处理它。字段必须是非静态的。此外,还必须在IDE的服务器配置中启用热发布。这是将IDE项目构建文件夹中的更改复制到服务器部署空间的过程。最后,还必须在服务器自己的配置中启用热部署。这是在运行时获取服务器部署文件夹中的更改的过程。该字段不是静态的,我使用jboss作为独立的,IDE jboss服务器配置为与之同步。我认为启用热部署是因为我可以看到服务器部署空间中发生的修改(修改.class文件的日期正在更改)。正如我在前面的评论中所指出的,运行时在服务器部署空间中发生的修改称为“热发布”,而不是“热部署”。至于字段修改显然不起作用,那么方法体修改呢?例如,添加一个
System.out.println()
行。我不知道热部署和热发布是两个不同的概念。我发现任何版本的jBoss都不支持类文件的热部署(如Max Rydahl Andersen所示),这就解释了一切(我修改过的jsf bean将构建到类文件中)。谢谢你的解释。