Sto utilizzando Struts 2 con il plugin Convention. Struts 2 dipende da ASM 3.3 che non è compatibile con Java 8. Non riesce a scoprire le classi di azioni che contengono riferimenti lambda o metodo.Make Struts 2 compatibile con Java 8 (legacy ASM 3)
L'eccezione:
2014-06-27 18:47:32,958 ERROR main/com.opensymphony.xwork2.util.finder.ClassFinder: Unable to read class [my.project.Action]
java.lang.ArrayIndexOutOfBoundsException: 30305
at org.objectweb.asm.ClassReader.readClass(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:717)
at com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:112)
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:268)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
ASM 5 sembra supportare Java 8 ma Struts non è compatibile a livello binario con quello.
Esistono soluzioni alternative per questo problema? In questo momento sto considerando di applicare patch a Struts/XWork.
Grande! Possiamo usare la tua patch e applicarla al sorgente XWork? –
@LukaszLenart, puoi certamente! È comunque banale, non ci sono idee originali lì. – alamar
Ottimo! Grazie molto! Biglietto JIRA correlato https://issues.apache.org/jira/browse/WW-4347 –