'Getting errors after attempting to update log4j and remove display tag

I've recently had to update my log4j dependency as the old one was being pulled in by displaytag. I've converted all of the necessary tables, and things seem to be running fine on the front end, but I'm receiving the following error in the log:

Exception while visiting META-INF/versions/9/module-info.class of size 703 
Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class of size 7373
Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.class of size 778
Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/Base64Util.class of size 862
Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/StackLocator$FqcnCallerLocator.class of size 1894
Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/internal/DefaultObjectInputFilter.class of size 2913




[2022-02-24T11:06:07.096-0600] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=50 _ThreadName=deployment-jar-scanner] [timeMillis: 1645722367096] [levelValue: 1000] [[
  Exception while visiting META-INF/versions/9/module-info.class of size 703
java.lang.IllegalArgumentException
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
        at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:359)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:165)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:127)
        at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:345)
        at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:68)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:304)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:293)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
]]

[2022-02-24T11:06:07.098-0600] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=50 _ThreadName=deployment-jar-scanner] [timeMillis: 1645722367098] [levelValue: 1000] [[
  Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class of size 7373
java.lang.IllegalArgumentException
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
        at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:359)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:165)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:127)
        at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:345)
        at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:68)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:304)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:293)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
]]

[2022-02-24T11:06:07.106-0600] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=50 _ThreadName=deployment-jar-scanner] [timeMillis: 1645722367106] [levelValue: 1000] [[
  Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.class of size 778
java.lang.IllegalArgumentException
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
        at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:359)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:165)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:127)
        at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:345)
        at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:68)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:304)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:293)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
]]

[2022-02-24T11:06:07.113-0600] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=50 _ThreadName=deployment-jar-scanner] [timeMillis: 1645722367113] [levelValue: 1000] [[
  Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/Base64Util.class of size 862
java.lang.IllegalArgumentException
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
        at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:359)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:165)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:127)
        at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:345)
        at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:68)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:304)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:293)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
]]

[2022-02-24T11:06:07.115-0600] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=50 _ThreadName=deployment-jar-scanner] [timeMillis: 1645722367115] [levelValue: 1000] [[
  Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/StackLocator$FqcnCallerLocator.class of size 1894
java.lang.IllegalArgumentException
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
        at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:359)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:165)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:127)
        at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:345)
        at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:68)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:304)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:293)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
]]

[2022-02-24T11:06:07.118-0600] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=50 _ThreadName=deployment-jar-scanner] [timeMillis: 1645722367118] [levelValue: 1000] [[
  Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/internal/DefaultObjectInputFilter.class of size 2913
java.lang.IllegalArgumentException
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
        at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
        at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:359)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:165)
        at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:127)
        at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:345)
        at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:68)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:304)
        at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:293)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
]]

Below is my pom.xml:

<name>username-service</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
<dependencies>
        <dependency>
            <groupId>com.dakuupa</groupId>
            <artifactId>struts2-crud-framework</artifactId>
            <version>1.0.6</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.12.4</version>
        </dependency>
                
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.12.4</version>
        </dependency>
        <!-- above 2 dependencies are for log4j JDK 7 -->   

    
        <!-- below 2 dependencies for removing server warnings in glassfish about slfj4 -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-to-slf4j</artifactId>
            <version>2.12.4</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

And my web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <listener>
        <listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
    </listener>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <error-page>
        <error-code>500</error-code>
        <location>/error.jsp</location>
    </error-page>
    <jsp-config>
    </jsp-config>
    <security-constraint>
        <display-name>SecurityConstraintLoginRequired</display-name>
        <web-resource-collection>
            <web-resource-name>AllWebResources</web-resource-name>
            <description/>
            <url-pattern>/admin/*</url-pattern>
            <url-pattern>/secure/*</url-pattern>
            <url-pattern>/personsearch/*</url-pattern>
            <url-pattern>/JsonSearch</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description>AuthenticationConstraint</description>
            <role-name>userRole</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>ldap</realm-name>
    </login-config>
    <security-role>
        <role-name>userRole</role-name>
    </security-role>
</web-app>

I'm not used to posting on here, so please let me know if any more information is needed to help.



Solution 1:[1]

If you have dependency conflicts then there's an option to exclude unused dependencies from the tree.

You need to have the correct version of ASM libraries on your classpath. This libraries are transitive from the struts2-core artifact.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Roman C