由于Java 9存在多版本的JAR(MRJARS),允许不同的类被包含在一个JAR文件的不同版本的Java。当Wildfly 14爪哇11所执行的Java-8代码包含在WAR尽管JAR是与Java的11码这包括作为一个普通的Java SE项目的依赖JAR一个MRJAR一个JAR运行运行我很惊讶根据行驶JRE不同的代码,但包括在战争时,以Java为11码似乎被忽略。
那是一个网络服务器预期的行为,因为Java EE 8并没有明确要求的Java 9(其中介绍MRJARs),但只有Java的8?是当一个新的Java版本,运行不正确读取MRJARs还有其他的Web服务器?或者是MRJARs只是Java SE的功能?
如果我理解正确的,由同一个类加载器加载一个战争中的所有内容(org.jboss.modules.ModuleClassLoader根据我的调试器)的Wildfly documentation,所以也许这类装载器并不correclty阅读包含JAR文件?
嗯,我的错误报告导致修复所以现在Wildfly不支持MRJARs在部署的WAR :)