提问者:小点点

旧javax库与jakarta的兼容性


我用最新的JavaJDK和Tomcat 10更新了我的java项目。新的库使用jakarta,你需要重命名所有的javax。到雅加达…

gradle中包含的库是:

compileOnly group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '5.0.0'
compileOnly group: 'jakarta.servlet.jsp', name: 'jakarta.servlet.jsp-api', version: '3.0.0'
compileOnly group: 'jakarta.el', name: 'jakarta.el-api', version: '4.0.0'
compileOnly group: 'jakarta.websocket', name: 'jakarta.websocket-api', version: '2.0.0'
compileOnly group: 'jakarta.security.enterprise', name: 'jakarta.security.enterprise-api', version: '2.0.0'
implementation group: 'jakarta.servlet.jsp.jstl', name: 'jakarta.servlet.jsp.jstl-api', version: '2.0.0'
implementation group: 'org.glassfish.web', name: 'jakarta.servlet.jsp.jstl', version: '2.0.0'

但是我发现我不能再使用Sitemesh和Html压缩器库了,因为它们使用旧的javax。库。如果我包括javax。库:

compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1'

我得到java. lang.NoClassDefFoundError错误。

有没有办法与旧库兼容?


共1个答案

匿名用户

包括旧的和新的库?由于有两个不同的命名空间,它们可能能够生活在一起。如果它有效,在每个人迁移到雅加达之前,它应该足以作为一个临时解决方案。