2017-07-03 1 views
1

J'ai une application Struts2, à base XML, mais maintenant pour la première fois j'ai introduit une action basée sur des annotations, et la l'application a éclaté au démarrage.

Compte tenu de la mise en correspondance d'action ci-après, au démarrage de l'application, je reçois l'erreur

java.lang.InstantiationError: com.opensymphony.xwork2.util.finder.ClassFinder 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390) 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347) 
    at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:199) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) 
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:906) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:486) 
    at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:75) 
    at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:63) 
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 

Il y avait une question similaire, mais personne n'a répondu, Issue with Struts2 Filter Exception

Bibliothèques utilisées:

  • struts2-convention-plugin-2.3.14.3.jar
  • struts2-core-2.5.10.1.jar
  • struts2-json-plugin-2.5.10.1.jar
  • struts2-ressort-plugin-2.5.10.1.jar
  • Struts2 carreaux-plugin-2,5. 10.1.jar
  • xwork-core-2.1.6.jar

Mise à jour: Je pensais que la Convention-Plugin-JAR 2.3.14.3 était incompatible avec les autres 2.5.10.1 ceux, donc je téléchargé: struts2-convention-plugin-2.5.10.1.jar

maintenant au démarrage se

java.lang.IncompatibleClassChangeError: org/apache/struts2/convention/DefaultClassFinder$InfoBuildingVisitor 
    at org.apache.struts2.convention.DefaultClassFinder.readClassDef(DefaultClassFinder.java:459) ~[struts2-convention-plugin-2.5.10.1.jar:2.5.10.1] 
    at org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:90) [struts2-convention-plugin-2.5.10.1.jar:2.5.10.1] 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:397) [struts2-convention-plugin-2.5.10.1.jar:2.5.10.1] 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:379) [struts2-convention-plugin-2.5.10.1.jar:2.5.10.1] 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:335) [struts2-convention-plugin-2.5.10.1.jar:2.5.10.1] 
    at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) [struts2-convention-plugin-2.5.10.1.jar:2.5.10.1] 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:199) [struts2-core-2.5.10.1.jar:2.5.10.1] 

SOLUTION La solution a été d'ajouter JARs ASM 5.x qui sont une dépendance de la Convention Struts-JAR pour les annotations. Nous utilisions ASM 3.3. J'ai ajouté les JAR ASM-Core, -Common, -Tree version 5.1.

Répondre

1

plug-in struts2-convention 2.5.10.1 a compiler les dépendances

<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-lang3</artifactId> 
    <version>3.4</version> 
</dependency> 
<dependency> 
    <groupId>org.ow2.asm</groupId> 
    <artifactId>asm</artifactId> 
    <version>5.1</version> 
</dependency> 
<dependency> 
    <groupId>org.ow2.asm</groupId> 
    <artifactId>asm-commons</artifactId> 
    <version>5.1</version> 
</dependency> 

Remarque: si vous n'avez pas besoin asm et asm-commons dépendances vous pouvez revenir à Struts 2.5.5.

0

Struts2 utilise ASM 5x pour le plug-in Convention. Vérifiez votre classpath et assurez-vous d'avoir la version appropriée des fichiers ASM.

+0

qui était-ce, grâce –

+0

Il devrait être le commentaire. –

+0

Ceci ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. - [De l'examen] (/ review/low-quality-posts/16729305) – TobiMcNamobi