有没有人在生产中使用带有 DCEVM 和 HotSwap 代理的 JBoss AS 7.1?任何地方的教程?是否可以通过 HotSwap 代理添加新的包/类,或者只是替换现有的包/类?
对不起,这个问题太含糊了。我只是在研究提议的技术。
另一点:我是否必须始终部署为爆炸的 .war,并在其中替换/添加 .class 文件?或者我可以部署为压缩的 .war 并在其旁边复制其他压缩的 .jars?
我的架构是我有一个 servlet,然后需要从它访问其他组件。我想在运行时添加/替换这些组件。
在这一刻是不可能的,有一个开放的问题Jboss support #27:
JBoss 7 使用 OSGI类加载,因此代理核心类不能从应用程序类加载器中获得(这不是带有父委托的标准类加载器的情况)。
解决方案是添加
-Djboss.modules.system.pkgs=org.hotswap.agent
到较旧的代理版本(类似于https://issues.jboss.org/browse/WFLY-895)。然而,Hotswap 代理现在会在启动时为 JBoss 设置所有必要的属性。
和这个:
目前,JBoss 7 可以正确启动,但会忽略配置属性 (extraClasspath、watchResources、webappDir)。通过调试进行热插拔仍然可用,但您无法使用替代源代码库。
OSGI 类加载必须
"hacked"
允许所有属性。类似的实现见 Jetty/Tomcat 插件。