У меня полнофункциональное приложение со стойками 2.5.22 и JDK7 (на JBoss EAP 6.4). После обновления до JDK11 (и JBoss EAP 7.2.7) у меня появилось следующее исключение, возникающее из плагина struts2-Convention *
java .lang.IllegalArgumentException: ноль в org.objectweb.asm.ClassVisitor. (ClassVisitor. java: 75) ~ [asm-6.2.1.redhat-00001.jar: 6.2.1.redhat-00001] в org.objectweb.asm.ClassVisitor. (ClassVisitor. java: 58) ~ [asm-6.2.1.redhat-00001.jar: 6.2.1.redhat-00001] в орг. apache .struts2.convention.DefaultClassFinder $ InfoBuildingVisitor. (DefaultClassFinder. java: 478) ~ [struts2-Convention -plugin-2.5.22.jar: 2.5.22]
Мне известна проблема, о которой здесь сообщается https://issues.apache.org/jira/projects/WW/issues/WW-4866?filter=allissues, которая содержит исправление в версии 2.6. К сожалению, версия 2.6 для Struts недоступна в центральном репозитории Maven.
Я попытался исключить asm из плагина struts2-Convention и добавить версию 7.1, как предлагается здесь { ссылка }
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.5.22</version>
<exclusions>
<exclusion>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
</exclusion>
<exclusion>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
</exclusion>
<exclusion>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>7.1</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>7.1</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>7.1</version>
</dependency>
но тогда приложение вообще не развертывается. Похоже, что теперь плагин соглашения не может найти другие классы.
Причина: java .lang.NoClassDefFoundError: org / apache / http / HttpException в java .base / java .lang.Class.getDeclaredMethods0 (собственный метод) в java .base / java .lang.Class.privateGetDeclaredMethods (Class. java: 3167) в java .base / java .lang.Class .privateGetPublicMethods (Class. java: 3192) в java .base / java .lang.Class.getMethods (Class. java: 1905) в deploy.alis.ear.alis-web.war // org. apache .struts2.convention.PackageBasedActionConfigBuilder.getActionAnnotations (PackageBasedActionConfigBuilder. java: 874)
1) Насколько серьезным является это исключение?
2) Есть ли способ решить эту проблему? Понижение рейтинга, как предлагается здесь { ссылка }, к сожалению, не вариант.