Je migre Java utilise JDK8 pour utiliser JDK 11, puis une erreur s'est produite concernant l'activation de javax. À la suite du guide de migration d'Oracle, je vois Java.activation dont le module a été supprimé de JDK 11.
Après cela, je donne une suggestion à des tiers ajoutés ** activation-1.0.2.jar * mais une erreur s'est quand même produite? Veuillez donner une suggestion sur le problème? et pourriez-vous me parler de l'expérience d'utilisation du code source de la migration Java 8 to Java 11 (serveur avec compilateur Tomcat 9.0.12. par Eclipse 2018-09 ( 4.9.0)
C'est une erreur de détail:
Caused by: Java.lang.NoClassDefFoundError: javax/activation/DataSource
at Java.base/Java.lang.Class.getDeclaredMethods0(Native Method)
at Java.base/Java.lang.Class.privateGetDeclaredMethods(Class.Java:3167)
at Java.base/Java.lang.Class.getDeclaredMethods(Class.Java:2310)
at org.Apache.catalina.util.Introspection.getDeclaredMethods(Introspection.Java:133)
at org.Apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.Java:285)
at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.Java:138)
at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.Java:69)
at org.Apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.Java:328)
at org.Apache.catalina.startup.ContextConfig.configureStart(ContextConfig.Java:768)
at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:299)
at org.Apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.Java:123)
at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5007)
at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:183)
Vous semblez avoir inclus un artefact incorrect ( pot externe ).
Vous devez inclure javax.activation:javax.activation-api:1.2.0
comme dépendance externe à votre projet pour accéder explicitement à la classe javax.activation.DataSource
. Exemple de dépendance maven pour la même chose:
<dependency>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
<version>1.2.0</version>
</dependency>
Notez également ( if using code modularized (includes module-info.Java
), vous devez indiquer une dépendance à la bibliothèque en utilisant la déclaration -
requires Java.activation;