问题标签 [hotswapagent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 WebLogic 12.1.3 中使用 dcevm 重新加载 jsf/xhtml
由于预算限制,我正试图从 JRebel 转移到 dcevm/hotswapagent ( http://www.hotswapagent.org/ )。我的 Java 1.7 应用程序是使用 ant 构建的,并作为包含 EJB jar 服务层和 WAR Web 层的 EAR 文件手动部署到 WebLogic 12.1.3。我的开发是使用 Eclipse 完成的。我有 hotswapagent 工作到可以修改服务层 EJB 或 Web 层类的程度,例如。JSF bean),但是当我对 xhtml 进行更改、保存并重新加载时,JSF 视图本身不会刷新。
我将重申我没有在 Eclipse 中使用 Run As -> Run On Server。我正在构建 ear 文件并使用 WebLogic 控制台部署它,然后修改代码。这种方法适用于 JRebel。
我试过在hotswap-agent.properties中指定这个属性:
...以及web.xml中的这些属性:
...但没有任何运气。
hotswapagent 和/或 WebLogic 12.1 可以做到这一点吗?
wildfly - Hotswap Agent / Wildfly / Weld:重新加载时出现异常:BeanManagerImpl.contexts 无法访问
我正在使用 WildFly,并且据我所知已经正确配置了 Hotswap Agent 1.0。它以以下消息很好地启动:
但是,每次我修改一个类时,我都会在控制台日志中收到以下警告。修改后的类未正确重新加载。
知道可能是什么原因吗?
maven - JBoss EAP 6.1 上的 Hotswap-agent - java.lang.OutOfMemoryError: PermGen space
我有一个要部署到 Jboss EAP 6.1 的 EAR 项目。我的 Maven 构建的产品如下所示:
这是我在部署应用程序时在 jboss 日志中得到的内容:
和
问题是,当我将耳朵部署到 jboss 中时,它大约需要正常时间的 10 倍,当我尝试从浏览器访问应用程序时,它会抛出“PermGen 空间:java.lang.OutOfMemoryError:PermGen 空间”。我厌倦了将我的 PermGen 内存增加到 700MB,但没有运气。所以我怀疑 hotswap-agent 正在监视我 EAR 中的所有类,包括 lib 目录中的类,这导致它消耗了太多内存。
我研究的下一个地方是默认禁用热交换,方法是在 hotswap-agent.properties 中放置 autoHotswap=false。如上所示,我尝试将此文件放置在 EAR 以及 EJB 和 WAR 类路径中,但没有任何区别。我也尝试过像这样添加到 JVM_OPTS 中,但无济于事:
所以我的问题是,如何在我的环境中控制热插拔代理?还有一种方法可以只查看指定包中的类,比如“com.foobar”吗?最后,为 jboss 上的 ear 部署配置 hotswap-agent 的正确方法是什么。
java - 如何使用 dcevm+hotswapagent 在 IDE 外的 Tomcat 上热交换 Java 类
我正在尝试在我的机器上的 Tomcat 上设置 java 类热交换,但未在我的 IDE (Eclipse) 中配置。在所有示例中,我都可以找到 Tomcat 服务器在 Eclipse 中运行。是否可以在外部 tomcat 上使用 DCEVM+HotSwapAgent 进行代码热交换?这是我到目前为止所做的:
- 将 DCEVM 设置为 altjvm 以供
jdk1.8.0_112
使用DCEVM-light-8u112-installer.jar
- 更新了 Tomcat 的启动以包含以下内容:
set JAVA_OPTS=-XXaltjvm=dcevm -javaagent:<path-to>hotswap-agent-1.0.jar %JAVA_OPTS%
- 部署了我的应用程序,
war
其中包括hotswap-agent.properties
WEB-INF/classes
在我的hotswap-agent.properties
文件中,我已将该extraClasspath
属性设置为我的bin
Eclipse 工作区中的项目文件夹。我也设置autoHotswap=true
了(无论是否附加了调试器,我都希望进行代码热插拔)。
使用此设置,当我在 eclipse 中构建(它设置为自动构建)时,我无法让 Tomcat 对更改做出反应。我错过了一些东西来让它工作吗?
旁注 - 我已经用 JRebel 完成了与上述完全相同的事情,所以我知道这至少是可能的。我只是想看看我是否可以让它与所有开源工具一起工作。提前致谢!
maven - Java SE 和 Java EE 中的热插拔代理
我发现 Hotswapagent 在 SE 和 EE 应用程序中的工作方式不同。在 SE 应用程序中,我可以毫无问题地向类添加新属性(例如 private Long x;),Hotswap 可以更新代码。但是我无法在 JSF ManagedBean 的 EE 应用程序中执行此操作,我得到“虚拟机不支持此操作:未实现架构更改”。
我的 EE 应用程序是带有 Wildfly 10 的 Netbeans 8.2 中的 Maven 企业应用程序(ejb、web、ear 项目)。我使用 DCEVM (jdk1.8.0_112) 和 Hotswapagent 1.1.0。
简单的代码更改(例如编辑方法主体)在 SE 和 EE 应用程序中都有效,但它不能在 ejb 和 web 项目中处理新属性的创建。我想知道我是否在设置上犯了一些错误,或者这是因为 SE 和 EE 环境之间的差异。感谢您的任何想法。
java - 热插拔代理,添加新类
我可以在 Hotswap Agent 上添加新课程吗?我尝试更改名称方法、方法体、字段,并且工作正常,但是当我添加新类并在另一个应用程序崩溃时调用它时,不要执行该类的内容并且不显示错误。
java - Java 检测到代码已被热交换
奇怪的问题-但我想知道如何编写代码以基本上说“自从我上次检查以来,intellij 是否对任何类进行了热交换”
为什么?
由于邪恶的历史原因 - springcontext 需要 2-3 分钟才能启动,这意味着如果您只想运行一个测试,那就是 2-3 分钟的等待时间。如果你是一个 TDD 人,想写一点,跑,写一点,跑——这是行不通的。加速 springcontext 加载显然是理想的,但远远超出了我所拥有的时间,因为这一切都是一团糟 - 我在想的只是做一个无限循环的 junit 测试:
这样,很多时候,有人可以只写一点代码,按下构建键 - 它会立即再次运行而无需重新加载上下文 - 将 2-3 分钟的延迟降低到小于第二。
wildfly - 如何在不重启 Wildfly 服务器的情况下部署 Java 服务类(jar 文件)
我想知道是否可以在不重新启动应用程序服务器的情况下将自定义的 Java 服务类部署到 activiti(在我的情况下是 Wildfly)。
目前,我必须将 jar 放入 classes 文件夹,然后重新启动整个服务器。我已经尝试过 HotSwapAgent,但它似乎不起作用。
java - HotSwapAgent:如何将它用于 WAR 文件中的类?
所以我找到了这个名为 hotswapagent 的库,它使您能够对部署在应用程序容器上的应用程序进行热交换。它也可以很好地与 XML 配置和类文件一起使用,但有两种情况:
在某些 WAR 中,您可以为“utils”使用另一个 jar,并将其作为主 WAR 的单独依赖项。如何替换我的 jar 中依赖于我的主 WAR 的类文件?
如何配置 Tomcat/Weblogic 等 Web 应用程序容器以在运行时接受内部 jar 中的更改?