J'ai créé une API REST à l'aide de WildFly-Swarm, mais lorsque j'exécute un fichier jar, une exception InvocationTargetException se produit et le jar ne peut pas être exécuté.
java version :1.8.0_131 Système d'exploitation: Windows 10 version 1607
Eclipse:4.6.3
>java -jar target-swarm.jar
2017-05-06 11:23:15,594 INFO [org.wildfly.swarm](main) WFSWARM0013: Installed fraction: Logging - STABLE org.wildfly.swarm:logging:2017.4.0
2017-05-06 11:23:15,601 INFO [org.wildfly.swarm](main) WFSWARM0013: Installed fraction: Bean Validation - STABLE org.wildfly.swarm:bean-validation:2017.4.0
2017-05-06 11:23:15,603 INFO [org.wildfly.swarm](main) WFSWARM0013: Installed fraction: JAX-RS - STABLE org.wildfly.swarm:jaxrs:2017.4.0
2017-05-06 11:23:15,603 INFO [org.wildfly.swarm](main) WFSWARM0013: Installed fraction: Undertow - STABLE org.wildfly.swarm:undertow:2017.4.0
2017-05-06 11:23:15,604 WARN [org.wildfly.swarm](main) WFSWARM0013: Installed fraction: Swagger - UNSTABLE org.wildfly.swarm:swagger:2017.4.0
2017-05-06 11:23:18,790 ERROR [stderr](main) java.lang.reflect.InvocationTargetException
2017-05-06 11:23:18,792 ERROR [stderr](main) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2017-05-06 11:23:18,793 ERROR [stderr](main) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2017-05-06 11:23:18,794 ERROR [stderr](main) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2017-05-06 11:23:18,794 ERROR [stderr](main) at java.lang.reflect.Method.invoke(Unknown Source)
2017-05-06 11:23:18,795 ERROR [stderr](main) at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:39)
2017-05-06 11:23:18,796 ERROR [stderr](main) at org.wildfly.swarm.bootstrap.Main.run(Main.java:46)
2017-05-06 11:23:18,797 ERROR [stderr](main) at org.wildfly.swarm.bootstrap.Main.main(Main.java:37)
2017-05-06 11:23:18,797 ERROR [stderr](main) Caused by: java.lang.NoClassDefFoundError: org/wildfly/security/manager/WildFlySecurityManager
2017-05-06 11:23:18,798 ERROR [stderr](main) at org.jboss.as.server.SelfContainedContainer.start(SelfContainedContainer.java:119)
2017-05-06 11:23:18,798 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.RuntimeServer.start(RuntimeServer.java:202)
2017-05-06 11:23:18,799 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.RuntimeServer$Proxy$_$$_WeldClientProxy.start(Unknown Source)
2017-05-06 11:23:18,799 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.lambda$null$0(ServerBootstrapImpl.java:149)
2017-05-06 11:23:18,800 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.LogSilencer$SilentExecutor.execute(LogSilencer.java:60)
2017-05-06 11:23:18,802 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.lambda$bootstrap$1(ServerBootstrapImpl.java:116)
2017-05-06 11:23:18,803 ERROR [stderr](main) at org.wildfly.swarm.spi.api.ClassLoading.withTCCL(ClassLoading.java:43)
2017-05-06 11:23:18,804 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.bootstrap(ServerBootstrapImpl.java:109)
2017-05-06 11:23:18,805 ERROR [stderr](main) at org.wildfly.swarm.Swarm.start(Swarm.java:369)
2017-05-06 11:23:18,806 ERROR [stderr](main) at org.wildfly.swarm.Swarm.main(Swarm.java:611)
2017-05-06 11:23:18,807 ERROR [stderr](main) ... 7 more
2017-05-06 11:23:18,808 ERROR [stderr](main) Caused by: java.lang.ClassNotFoundException: org.wildfly.security.manager.WildFlySecurityManager from [Module "org.jboss.as.server:main" from BootModuleLoader@176d53b2 for finders [BootstrapClasspathModuleFinder, BootstrapModuleFinder(org.wildfly.swarm.bootstrap:main), ClasspathModuleFinder, ContainerModuleFinder(swarm.container:main), ApplicationModuleFinder(swarm.application:main), org.wildfly.swarm.bootstrap.modules.DynamicModuleFinder@971d0d8]]
2017-05-06 11:23:18,809 ERROR [stderr](main) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
2017-05-06 11:23:18,809 ERROR [stderr](main) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
2017-05-06 11:23:18,812 ERROR [stderr](main) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
2017-05-06 11:23:18,813 ERROR [stderr](main) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
2017-05-06 11:23:18,814 ERROR [stderr](main) ... 17 more
2017-05-06 11:23:18,815 ERROR [stderr](main) Exception in thread "main" java.lang.reflect.InvocationTargetException
2017-05-06 11:23:18,816 ERROR [stderr](main) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2017-05-06 11:23:18,816 ERROR [stderr](main) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2017-05-06 11:23:18,817 ERROR [stderr](main) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2017-05-06 11:23:18,818 ERROR [stderr](main) at java.lang.reflect.Method.invoke(Unknown Source)
2017-05-06 11:23:18,819 ERROR [stderr](main) at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:39)
2017-05-06 11:23:18,822 ERROR [stderr](main) at org.wildfly.swarm.bootstrap.Main.run(Main.java:46)
2017-05-06 11:23:18,824 ERROR [stderr](main) at org.wildfly.swarm.bootstrap.Main.main(Main.java:37)
2017-05-06 11:23:18,825 ERROR [stderr](main) Caused by: java.lang.NoClassDefFoundError: org/wildfly/security/manager/WildFlySecurityManager
2017-05-06 11:23:18,827 ERROR [stderr](main) at org.jboss.as.server.SelfContainedContainer.start(SelfContainedContainer.java:119)
2017-05-06 11:23:18,827 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.RuntimeServer.start(RuntimeServer.java:202)
2017-05-06 11:23:18,828 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.RuntimeServer$Proxy$_$$_WeldClientProxy.start(Unknown Source)
2017-05-06 11:23:18,829 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.lambda$null$0(ServerBootstrapImpl.java:149)
2017-05-06 11:23:18,830 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.LogSilencer$SilentExecutor.execute(LogSilencer.java:60)
2017-05-06 11:23:18,831 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.lambda$bootstrap$1(ServerBootstrapImpl.java:116)
2017-05-06 11:23:18,835 ERROR [stderr](main) at org.wildfly.swarm.spi.api.ClassLoading.withTCCL(ClassLoading.java:43)
2017-05-06 11:23:18,836 ERROR [stderr](main) at org.wildfly.swarm.container.runtime.ServerBootstrapImpl.bootstrap(ServerBootstrapImpl.java:109)
2017-05-06 11:23:18,837 ERROR [stderr](main) at org.wildfly.swarm.Swarm.start(Swarm.java:369)
2017-05-06 11:23:18,837 ERROR [stderr](main) at org.wildfly.swarm.Swarm.main(Swarm.java:611)
2017-05-06 11:23:18,838 ERROR [stderr](main) ... 7 more
2017-05-06 11:23:18,839 ERROR [stderr](main) Caused by: java.lang.ClassNotFoundException: org.wildfly.security.manager.WildFlySecurityManager from [Module "org.jboss.as.server:main" from BootModuleLoader@176d53b2 for finders [BootstrapClasspathModuleFinder, BootstrapModuleFinder(org.wildfly.swarm.bootstrap:main), ClasspathModuleFinder, ContainerModuleFinder(swarm.container:main), ApplicationModuleFinder(swarm.application:main), org.wildfly.swarm.bootstrap.modules.DynamicModuleFinder@971d0d8]]
2017-05-06 11:23:18,840 ERROR [stderr](main) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
2017-05-06 11:23:18,840 ERROR [stderr](main) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
2017-05-06 11:23:18,841 ERROR [stderr](main) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
2017-05-06 11:23:18,842 ERROR [stderr](main) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
2017-05-06 11:23:18,844 ERROR [stderr](main) ... 17 more
Si vous n'avez pas de cours, essayez d'en ajouter un. J'ai donc ajouté les dépendances suivantes à pom.xml.
<dependency>
<groupId>org.wildfly.security</groupId>
<artifactId>wildfly-security-manager</artifactId>
<version>1.1.2.Final</version>
</dependency>
Le résultat reste le même.
Essayez de l'exécuter dans un environnement Linux en suivant l'environnement d'exécution local.
Le résultat reste le même.
Suspectez la bibliothèque que vous obtenez avec maven.
Il est arrivé qu'il y ait un pot qui fonctionnait et qui a été créé sur une autre machine, alors quand j'ai comparé le contenu du pot, m2repo/org/wildfly/security/wildfly-elytron/1.0.2.Final/wildfly-elytron-1.0.2.Final.jar Était différent au niveau binaire.
Je ne sais pas pourquoi c'est arrivé, mais j'ai supprimé le wildfly-elytron dans mon référentiel local et recréé le pot et cela a fonctionné.
La cause était que le fichier jar dans le référentiel local était incorrect. La solution consiste à supprimer le référentiel local une fois et à réexécuter maven.
Maven n'était pas trop méfiant, mais il était le coupable. On ne sait pas pourquoi le référentiel local a été corrompu, mais si vous ne savez pas quoi faire, ** suspectez le référentiel local de Maven **.
Recommended Posts