问题标签 [dcevm]
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.
tomcat - Tomcat、Intellij 和 DCEVM 配置
我已经在 intellij 上配置了 DCEVM,但我认为我这样做的方式是错误的,因为当我对 java 文件和 ctrl + shift + f9 进行了一些更改时,tomcat 正在重新启动。有人可以告诉我配置它的正确方法。
scala - 在 IntelliJ IDEA 中调试启用 DCEVM 的 sbt-scala 应用程序的解决方案
我使用 DCEVM 在我的 Scala 应用程序中重新加载类。Sbt 有一个很好的特性,它可以在源代码更改时自动编译类。所以我要做的是打开两个 sbt 实例,~;compile;copy-resources
在第一个实例中运行以自动编译,然后run
在第二个实例中运行。
为了调试,我可以使用 IntelliJ 中运行良好的远程调试器工具,除了一件(但很重要)的事情:每当 sbt 重新加载一个类时,IntelliJ 不再在断点处停止。我必须重新启动远程调试器才能解决这个问题,这非常不方便。
我不太喜欢内置编译器,因为它与 sbt 相比确实很慢(而且也不是自动的),但是,如果我从 IntelliJ 运行程序并执行Compile file
命令,则调试效果很好。
我如何通过让 sbt 和 IntelliJ 在类重新加载时刷新断点或使用其他设置来改进开发过程?先感谢您。
hotswap - HotswapAgent 插件
我打算开发自定义的 HotswapAgent 插件,但不知道应该部署在哪里。所有标准插件都捆绑在代理 jar 文件中。是否有任何目录我应该将我的插件 jar 文件放在哪里,或者我必须将它嵌入到代理 jar 文件中?
jvm - HotSwapAgent 插件 - 未找到插件类
我一直在为 HotSwapAgent 开发自定义插件,但遇到了类加载器缺少插件类的奇怪问题。
这是抛出的异常
这是我的 hotswap-agent.properties 文件
似乎 hotswap-agent.jar 代理已正确加载,获取 hotswap-agent.properties,但无法加载插件类。
我怀疑类加载器层次结构存在问题,因为代理尝试加载从 WLS 类加载器管理的插件类。我不知道该怎么办。有任何想法吗?
我正在使用 WLS 应用服务器。
freemarker - Freemarker removeIntrospectionInfo 在模型热交换后不适用于 DCEVM
我正在使用 Freemarker 和 DCEVM+HotSwapManager 代理。这基本上允许我在添加/删除方法时热交换类。
在 Freemarker 使用热交换类作为模型之前,一切都像魅力一样工作。它抛出 freemarker.ext.beans.InvalidPropertyException: No such bean property on me 即使反射表明该方法存在(在调试会话期间检查)。
我在用
清除缓存,但它不起作用。我什至尝试获取 classCache 成员字段并使用反射清除它,但它也不起作用。
我究竟做错了什么?我只需要强制 freemarker 放弃对他已经获得的模型类/类的任何自省。
有什么办法吗?
更新
示例代码
应用程序.java
RunnerImpl.java
工人.java
模型.java
这个例子根本不起作用。即使在运行时更改 BeansWrapper 也不会产生任何影响。
weblogic - 带有 DCEVM 和 HotSwapAgent 的 WebLogic 上的奇怪 java.beans.Introspector 行为
我在 JVM 1.7 上运行 WebLogic,带有 DCEVM(完整实现)和带有自定义插件的 HotSwapAgent,每个 onClassLoad 都会触发该插件。
我遇到了使用 java.beans.Introspector 的 Freemarker 的问题。我发现的是,当我在 HotSwapAgent 调用的方法上调用 Introspector.flushCaches(通过 ReflectionCommand)时,Introspector 中的 BeanInfo 会正确失效(使用该线程中的调试器进行检查)。但是,当我向 WLS 应用服务器发出请求时,工作线程的 Introspector 会显示旧值!
这似乎是一些线程本地实现,但我无法在 java.beans.Introspector 的文档中找到任何指向该假设的内容。
有人知道为什么会发生这种情况以及如何解决吗?
目前,我将有关重新加载的类的信息存储在单独的类中,并从请求线程重新加载该缓存中的所有内容,这很有效。
感谢您提供任何线索。
jvm - 如何在不使用 IDE 的情况下进行 HotSwapping?
我在 Eclipse 和 IntelliJ IDE 中使用了 DCEVM 热插拔技术,这是一个非常酷的功能。通过在 IDE 中使用 DCEVM,我可以在运行时更改为源代码,即添加/删除/编辑方法、类、属性,而无需重新启动程序。
现在我的问题是: 我想在不使用任何 IDE 的情况下运行的应用程序中应用相同的功能。更具体地说,正在运行的应用程序源代码(编译代码)可以即时更改。对于该字节码,如何在 DCEVM 上部署以进行运行时热交换?
我发现: 我们可以在不使用 IDE 的情况下进行热交换,因为我们可以编写自己的 JNI 代码直接挂接到 JVMTI 并触发热交换。
任何想法/帮助都会很有帮助。谢谢
java - 带有 Maven 和 GWT 的 DCEVM
我正在尝试使用我的 GWT/Maven 项目设置 DCEVM (JDK 1.8 51) 和 HotSwap-Agent,以便能够在不重新启动 GWT 的 Super Devmode 的情况下重新加载更改。首先,我的项目设置如下:
项目-核心
-
数据
-i18n
其中 core 是我运行 mvn gwt:run 的主要模块。这取决于 i18n 和 data 模块,所以我也希望重新加载这些模块。所以在我的 hotswap-agent.properties 中,我放了:
我已经将 DCEVM 安装为 alt jvm,并像这样设置我的 MAVEN_OPTS:
从这里我做 mvn gwt:run 来启动开发模式。HotSwap-Agent 似乎已正确初始化,如下所示:
然后 devmode 启动,我可以运行我的应用程序和所有这些。
现在,例如,当我对数据进行 mvn clean install 时,HotSwap-Agent 似乎检测到了更改,但这就是我得到的:
然后,一个巨大的列表(看起来我得到了模块中每个类的跟踪):
当 hotswap-agent 也注意到我的核心模块发生变化时,这一切都会发生。
毕竟,程序可以正常恢复,但更改不会生效,即使我刷新浏览器也是如此。当我查找溢出消息或 filenotfound 异常(参考 hotswap-agent)时,我没有得到任何搜索结果。所以,我真的不知道发生了什么。任何帮助都会很棒!
java - 多模块项目的热插拔代理配置
我需要帮助在我的项目中配置热交换代理以热部署类文件。
在我的项目中,我们的项目设置如下:
WebProject (war)
|
|_ _ Service Project(jar)
服务项目在web 项目中用作jar 文件。因此,每当我在服务项目中对 java 文件进行更改时,我希望热插拔代理用最新的类文件重新加载/替换其类文件,而无需再次部署整个项目。
我已经为jdk 1.7.51和hotswap -agent.jar文件下载了 dcevm(动态代码演化 vm) ,并且还完成了 eclipse 配置。每当我对 WebProject 的 .java、.properties 文件进行更改时,它都会自动重新加载它,而无需再次部署应用程序。现在我只想以这样的方式配置我的热插拔代理,如果我在服务项目中更改用作 Web 项目中的 jar 文件的 java 文件,它应该重新加载该 .class 文件或 .jar 文件。
我是否需要在服务项目的资源文件夹中再添加一个 hotswap-agent.properties 文件?目前我已将它添加到 web 项目的资源文件夹中。
很感谢任何形式的帮助。