scalaでjava.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlRootElementが発生する
java11を利用しているときにjava.lang.NoClassDefFoundError
が発生する
CreationException: Unable to create injector, see the following errors: 1) Error injecting constructor, java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlRootElement at play.modules.swagger.SwaggerPluginImpl.<init>(SwaggerPlugin.scala:35) while locating play.modules.swagger.SwaggerPluginImpl at play.modules.swagger.SwaggerModule.bindings(SwaggerModule.scala:11): Binding(interface play.modules.swagger.SwaggerPlugin to ConstructionTarget(class play.modules.swagger.SwaggerPluginImpl) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1) while locating play.modules.swagger.SwaggerPlugin
原因
java11ではjavax/xml/bind
のモジュールが削除されたため発生
対策
libraryDependencies ++= Seq("javax.xml.bind" % "jaxb-api" % "2.3.0")