我们升级到 Grails 4 / Java 11 并在开发过程中失去了热插拔功能。我尝试了 DCEVM,但应用程序无法启动(第一次 withNewSession 调用时出错)。
有没有人成功让 Grails 和 DCEVM 一起工作?
我们升级到 Grails 4 / Java 11 并在开发过程中失去了热插拔功能。我尝试了 DCEVM,但应用程序无法启动(第一次 withNewSession 调用时出错)。
有没有人成功让 Grails 和 DCEVM 一起工作?
最近我尝试使用 Hybris2005 + Java 11 + Windows + Eclipse。
按照以下给出的步骤并根据您的需要进行修改。
DCEVM 11 配置步骤。
tomcat.debugjavaoptions=-XX:HotswapAgent=core -javaagent:D:/java11-openjdk/dcevm-11.0.10+3/lib/hotswap/hotswap-agent.jar=disablePlugin=Log4j2,disablePlugin=Spring,disablePlugin=Proxy, disablePlugin=AnonymousClassPatch,disablePlugin=ZK,autoHotswap=true -Djava.locale.providers=COMPAT,CLDR -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n -Xmx4G -Xms2G
另外,请设置 ANT_HOME 环境变量,这样我们就不会从 \hybris\bin\platform 运行 setantenv.bat 并相应地更新 PATH 变量。
执行 ant clean all 并在调试模式下启动 hybris。
在代码中添加 System.out.println() 语句,然后从该特定扩展文件夹执行 ant build 命令。
验证是否完成了热交换。
我已经使用 Grails 5.1.2 进行热插拔,但是 Hibernate 插件会导致
org.hibernate.HibernateException: No Session found for current thread
所以我不得不禁用 Hibernate 插件。这意味着对域类的任何更改仍需要重新启动。
sdk 安装 java 11.0.9-trava
sdk 使用 java 11.0.9-trava
将以下内容添加到 build.gradle 中的 bootRun jvmArgs:
'-XX:HotswapAgent=fatjar'
创建 src/main/resources/hotswap-agent.properties 包含:
disabledPlugins=休眠
自动热交换=真
您现在应该能够启动 Grails,并且无需重新启动即可获取任何代码更改。