IllegalArgumentException на Struts2-Convention-плагин с JDK11 - PullRequest
0 голосов
/ 10 апреля 2020

У меня полнофункциональное приложение со стойками 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) Есть ли способ решить эту проблему? Понижение рейтинга, как предлагается здесь { ссылка }, к сожалению, не вариант.

...