JBoss部署Swagger+RestEasy项目报DecorateAsScala类缺失错误
问题根因
你遇到的类缺失报错是Scala版本不兼容导致的:scala.collection.convert.DecorateAsScala类仅存在于Scala 2.12及更早版本中,Scala 2.13版本重构了集合转换类的包路径,你引入的2.13.7版本scala-library中没有对应类,所以无论换哪个2.13分支的版本都会报错。同时你参考的Swagger集成依赖默认适配的是Scala 2.12版本,和你引入的Scala版本不匹配。
修复步骤
- 第一步:将scala-library依赖降级到2.12.x分支的最新稳定版,参考配置如下:
<dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.12.18</version> </dependency>
- 第二步:在项目的
WEB-INF目录下新增jboss-deployment-structure.xml配置文件,避免JBoss EAP容器优先加载自带的旧版Scala依赖,配置内容如下:
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <exclusions> <module name="org.scala-lang.scala-library"/> </exclusions> </deployment> </jboss-deployment-structure>
- 第三步:校验Swagger依赖版本,选择适配Scala 2.12、同时兼容你当前环境RestEasy 3.9.3版本的Swagger组件,推荐使用
swagger-jaxrs_2.12的1.6.x版本。
内容的提问来源于stack exchange,提问作者Dr Dave
相关产品推荐
相关产品推荐

