提问者:小点点

热禁用WildFly 26.0.1字节码转换从javax到jakarta包


我们使用WildFly 26.0.1和Java17。当您部署WAR文件时,WildFly会检查WAR中包含的所有JAR文件,并修改所有引用“javax.”包的编译类文件(. class),将它们替换为相应的“jakarta.”包。这个自动字节码转换过程给我们带来了2个问题:

  1. 所有修改后的JAR文件的签名都变得无效,JVM拒绝加载和执行它们,JAR签名是我们发现的唯一可靠的方法,可以确保我们的软件不被客户端、黑客和/或病毒篡改。
  2. WAR中包含的某些JAR文件并不打算由WildFly执行。相反,它们使用JavaWeb Start(JNLP)技术下载到客户端站,并由带有javax.包的Java1.8(JRE)执行。出于安全原因,JNLP不会加载和执行未正确签名的下载JAR文件。此外,我们不希望这些JAR文件使用“jakarta.”包。

我们知道客户端使用“javax.”包使用哪些JAR文件,以及WildFly使用“jakarta.”包执行哪些JAR文件。所以,问题是:如何在部署WAR文件时禁用WildFly执行的这个字节码转换过程?


共1个答案

匿名用户

我假设您使用的是WildFly预览版。可以通过将org. WildFly.un支持.skip.jakarta.变压器系统属性设置为true来禁用部署转换器。