弹簧启动,tomcat和Java模块

时间:2020-05-10 20:49:26

标签: java spring spring-boot module

我已经将OSS项目(https://m-m-m.github.io)完全迁移到JPMS(模块)。但是,现在与spring-boot集成给了我很多困难。 首先,我偶然发现了slf4j模块支持的各种问题:

但是现在我完全陷入了这样的错误:

[ERROR] error: the unnamed module reads package javax.servlet from both org.apache.tomcat.embed.core and java.servlet

在模块内部,我被迫要求使用我正在使用的代码,并且无法从类路径/未命名的模块中访问代码。因此,我被迫使用servlet-api和slf4j的模块化版本。 但是,spring-boot使用的是tomcat-embed,它包含servlet-api,但未使用JakartaEE的官方JPMS模块。我什至尝试更新到tomcat 10.0.0-M4,但是spring-boot尚不支持此功能:

NoSuchMethodError: 'void org.apache.catalina.Context.addServletContainerInitializer(javax.servlet.ServletContainerInitializer, java.util.Set)'

还有什么魔术可以解决这样的问题?还是JPMS是一家封闭商店,并且由于Java生态系统的发展速度不够快(多年来Java9已于2017年发布),我多少被迫重新发明轮子,并用模块化代码替换所有此类东西?

0 个答案:

没有答案