Spring Boot 3.1 + Apache Struts 7.0.0-M8 отсутствует javax.servlet.http.HttpServletRequest

У меня есть приложение, которое использует Spring Boot 3.1 и Apache Struts 7.0.0-M8. Я просто не могу заставить их работать, поскольку загрузчик классов Java настойчиво пытается загрузить javax. HttpServletRequest вместо сервлета Jakarta.

Я отладил код, обновил зависимости, проверено на предмет использования. Несколько раз удалял мой кеш Gradle и признавал недействительным мой кеш IntelliJ.
Откуда вообще этот звонок? Единственное, что у меня есть, это то, что ни один из них не загружен и по умолчанию используется javax, который он не может найти. Но если это так, следует ли мне сделать его доступным при запуске в моей конфигурации весенней загрузки?

Что я могу сделать?

Вот дерево зависимостей:

annotationProcessor - Annotation processors and their dependencies for source set 'main'.
+--- org.springframework.boot:spring-boot-configuration-processor:3.3.1
\--- org.projectlombok:lombok:1.18.30

bootArchives - Configuration for Spring Boot archive artifacts. (n)
No dependencies

compileClasspath - Compile classpath for source set 'main'.
+--- jakarta.servlet:jakarta.servlet-api:6.1.0
+--- org.springframework.boot:spring-boot-dependencies:3.3.1
+--- org.ow2.asm:asm:9.7
+--- jakarta.el:jakarta.el-api:6.0.0
+--- jakarta.xml.bind:jakarta.xml.bind-api:4.0.2
|    \--- jakarta.activation:jakarta.activation-api:2.1.3
+--- jakarta.annotation:jakarta.annotation-api:3.0.0
+--- org.glassfish.jaxb:jaxb-runtime:4.0.5
|    \--- org.glassfish.jaxb:jaxb-core:4.0.5
|         +--- jakarta.xml.bind:jakarta.xml.bind-api:4.0.2 (*)
|         +--- jakarta.activation:jakarta.activation-api:2.1.3
|         +--- org.glassfish.jaxb:txw2:4.0.5
|         \--- com.sun.istack:istack-commons-runtime:4.1.2
+--- jakarta.activation:jakarta.activation-api:2.1.3
+--- org.springframework:spring-core:6.1.11
|    \--- org.springframework:spring-jcl:6.1.11 -> 6.1.10
+--- org.springframework.boot:spring-boot-starter-web:3.3.1
|    +--- org.springframework.boot:spring-boot-starter:3.3.1
|    |    +--- org.springframework.boot:spring-boot:3.3.1
|    |    |    +--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|    |    |    \--- org.springframework:spring-context:6.1.10
|    |    |         +--- org.springframework:spring-aop:6.1.10
|    |    |         |    +--- org.springframework:spring-beans:6.1.10
|    |    |         |    |    \--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|    |    |         |    \--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|    |    |         +--- org.springframework:spring-beans:6.1.10 (*)
|    |    |         +--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|    |    |         +--- org.springframework:spring-expression:6.1.10
|    |    |         |    \--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|    |    |         \--- io.micrometer:micrometer-observation:1.12.7 -> 1.13.1
|    |    |              \--- io.micrometer:micrometer-commons:1.13.1
|    |    +--- org.springframework.boot:spring-boot-autoconfigure:3.3.1
|    |    |    \--- org.springframework.boot:spring-boot:3.3.1 (*)
|    |    +--- org.springframework.boot:spring-boot-starter-logging:3.3.1
|    |    |    +--- ch.qos.logback:logback-classic:1.5.6
|    |    |    |    +--- ch.qos.logback:logback-core:1.5.6
|    |    |    |    \--- org.slf4j:slf4j-api:2.0.13
|    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.23.1
|    |    |    |    +--- org.apache.logging.log4j:log4j-api:2.23.1 -> 2.23.0
|    |    |    |    \--- org.slf4j:slf4j-api:2.0.9 -> 2.0.13
|    |    |    \--- org.slf4j:jul-to-slf4j:2.0.13
|    |    |         \--- org.slf4j:slf4j-api:2.0.13
|    |    +--- jakarta.annotation:jakarta.annotation-api:2.1.1 -> 3.0.0
|    |    +--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|    |    \--- org.yaml:snakeyaml:2.2
|    +--- org.springframework.boot:spring-boot-starter-json:3.3.1
|    |    +--- org.springframework.boot:spring-boot-starter:3.3.1 (*)
|    |    +--- org.springframework:spring-web:6.1.10
|    |    |    +--- org.springframework:spring-beans:6.1.10 (*)
|    |    |    +--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|    |    |    \--- io.micrometer:micrometer-observation:1.12.7 -> 1.13.1 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.17.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.17.1
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.17.1
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.17.1 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.17.1 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.17.1 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.17.1 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.1 (c)
|    |    |    |         \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.17.1 (c)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.17.1
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.17.1 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.17.1 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.17.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.17.1 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.17.1 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.17.1 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.17.1 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.17.1 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.17.1 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.17.1 (*)
|    |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.17.1
|    |         +--- com.fasterxml.jackson.core:jackson-core:2.17.1 (*)
|    |         +--- com.fasterxml.jackson.core:jackson-databind:2.17.1 (*)
|    |         \--- com.fasterxml.jackson:jackson-bom:2.17.1 (*)
|    +--- org.springframework.boot:spring-boot-starter-tomcat:3.3.1
|    |    +--- jakarta.annotation:jakarta.annotation-api:2.1.1 -> 3.0.0
|    |    +--- org.apache.tomcat.embed:tomcat-embed-core:10.1.25
|    |    +--- org.apache.tomcat.embed:tomcat-embed-el:10.1.25
|    |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:10.1.25
|    |         \--- org.apache.tomcat.embed:tomcat-embed-core:10.1.25
|    +--- org.springframework:spring-web:6.1.10 (*)
|    \--- org.springframework:spring-webmvc:6.1.10
|         +--- org.springframework:spring-aop:6.1.10 (*)
|         +--- org.springframework:spring-beans:6.1.10 (*)
|         +--- org.springframework:spring-context:6.1.10 (*)
|         +--- org.springframework:spring-core:6.1.10 -> 6.1.11 (*)
|         +--- org.springframework:spring-expression:6.1.10 (*)
|         \--- org.springframework:spring-web:6.1.10 (*)
+--- org.springframework.boot:spring-boot-starter-tomcat:3.3.1 (*)
+--- org.glassfish.web:jakarta.servlet.jsp.jstl:3.0.1
+--- jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0
|    +--- jakarta.servlet:jakarta.servlet-api:6.0.0 -> 6.1.0
|    \--- jakarta.el:jakarta.el-api:5.0.0 -> 6.0.0
+--- org.apache.tomcat.embed:tomcat-embed-jasper:10.1.25
|    +--- org.apache.tomcat.embed:tomcat-embed-core:10.1.25
|    +--- org.apache.tomcat.embed:tomcat-embed-el:10.1.25
|    \--- org.eclipse.jdt:ecj:3.33.0
+--- org.apache.logging.log4j:log4j-api:2.23.0
+--- org.apache.logging.log4j:log4j-core:2.23.1
|    \--- org.apache.logging.log4j:log4j-api:2.23.1 -> 2.23.0
+--- org.apache.struts:struts2-core:7.0.0-M8
|    +--- org.freemarker:freemarker:2.3.33
|    +--- com.github.ben-manes.caffeine:caffeine:3.1.8
|    |    +--- org.checkerframework:checker-qual:3.37.0
|    |    \--- com.google.errorprone:error_prone_annotations:2.21.1 -> 2.27.0
|    +--- ognl:ognl:3.3.5
|    |    \--- org.javassist:javassist:3.29.0-GA
|    +--- org.apache.logging.log4j:log4j-api:2.23.1 -> 2.23.0
|    +--- org.apache.commons:commons-fileupload2-jakarta-servlet6:2.0.0-M2
|    |    +--- org.apache.commons:commons-fileupload2-core:2.0.0-M2
|    |    |    \--- commons-io:commons-io:2.15.1
|    |    \--- commons-io:commons-io:2.15.1
|    +--- commons-io:commons-io:2.15.1
|    +--- org.apache.commons:commons-lang3:3.14.0
|    \--- org.apache.commons:commons-text:1.12.0
|         \--- org.apache.commons:commons-lang3:3.14.0
+--- com.jgeppert.struts2.jquery:struts2-jquery-tree-plugin:5.0.4
|    +--- com.jgeppert.struts2.jquery:struts2-jquery-plugin:5.0.4
|    |    +--- org.apache.struts:struts-annotations:1.0.8
|    |    |    \--- org.freemarker:freemarker:2.3.31 -> 2.3.33
|    |    +--- org.apache.struts:struts2-core:6.4.0 -> 7.0.0-M8 (*)
|    |    \--- org.apache.struts:struts2-velocity-plugin:6.4.0 -> 7.0.0-M8
|    |         +--- org.apache.velocity:velocity-engine-core:2.3
|    |         |    +--- org.apache.commons:commons-lang3:3.11 -> 3.14.0
|    |         |    \--- org.slf4j:slf4j-api:1.7.30 -> 2.0.13
|    |         +--- org.apache.struts:struts2-velocity-tools-view-jakarta:7.0.0-M8
|    |         \--- org.apache.struts:struts2-velocity-tools-jsp-jakarta:7.0.0-M8
|    |              \--- org.apache.velocity.tools:velocity-tools-generic:3.1
|    |                   +--- org.apache.velocity:velocity-engine-core:2.3 (*)
|    |                   +--- commons-beanutils:commons-beanutils:1.9.4
|    |                   |    \--- commons-collections:commons-collections:3.2.2
|    |                   +--- org.apache.commons:commons-digester3:3.2
|    |                   |    \--- commons-beanutils:commons-beanutils:1.8.3 -> 1.9.4 (*)
|    |                   +--- org.apache.commons:commons-lang3:3.10 -> 3.14.0
|    |                   +--- org.slf4j:slf4j-api:1.7.30 -> 2.0.13
|    |                   \--- com.github.cliftonlabs:json-simple:3.0.2
|    +--- org.apache.struts:struts-annotations:1.0.8 (*)
|    +--- org.apache.struts:struts2-core:6.4.0 -> 7.0.0-M8 (*)
|    +--- org.apache.struts:struts2-velocity-plugin:6.4.0 -> 7.0.0-M8 (*)
|    \--- commons-beanutils:commons-beanutils:1.9.4 (*)
+--- org.apache.struts:struts2-json-plugin:7.0.0-M8
+--- org.apache.struts:struts2-spring-plugin:7.0.0-M8
|    +--- org.springframework:spring-beans:6.0.13 -> 6.1.10 (*)
|    +--- org.springframework:spring-core:6.0.13 -> 6.1.11 (*)
|    +--- org.springframework:spring-context:6.0.13 -> 6.1.10 (*)
|    \--- org.springframework:spring-web:6.0.13 -> 6.1.10 (*)
+--- org.apache.struts:struts2-config-browser-plugin:7.0.0-M8
|    \--- org.apache.struts:struts2-velocity-plugin:7.0.0-M8 (*)
+--- commons-net:commons-net:3.11.1
+--- org.apache.commons:commons-lang3:3.14.0
+--- org.apache.commons:commons-text:1.12.0 (*)
+--- com.google.code.gson:gson:2.11.0
|    \--- com.google.errorprone:error_prone_annotations:2.27.0
+--- org.bouncycastle:bcprov-jdk18on:1.78.1
+--- com.thoughtworks.xstream:xstream:1.4.20
|    \--- io.github.x-stream:mxparser:1.2.2
|         \--- xmlpull:xmlpull:1.1.3.1
+--- org.springframework.boot:spring-boot-starter-websocket:3.3.1
|    +--- org.springframework.boot:spring-boot-starter-web:3.3.1 (*)
|    +--- org.springframework:spring-messaging:6.1.10 -> 6.1.11
|    |    +--- org.springframework:spring-beans:6.1.11 -> 6.1.10 (*)
|    |    \--- org.springframework:spring-core:6.1.11 (*)
|    \--- org.springframework:spring-websocket:6.1.10 -> 6.1.11
|         +--- org.springframework:spring-context:6.1.11 -> 6.1.10 (*)
|         +--- org.springframework:spring-core:6.1.11 (*)
|         \--- org.springframework:spring-web:6.1.11 -> 6.1.10 (*)
+--- org.springframework:spring-websocket:6.1.11 (*)
+--- org.springframework:spring-messaging:6.1.11 (*)
\--- org.projectlombok:lombok:1.18.30

Вот трассировка стека:

    com.opensymphony.xwork2.config.ConfigurationException: Caught Exception while registering Interceptor class org.apache.struts2.interceptor.debugging.DebuggingInterceptor
            at com.opensymphony.xwork2.factory.DefaultInterceptorFactory.buildInterceptor(DefaultInterceptorFactory.java:97) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:210) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:73) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.config.providers.XmlDocConfigurationProvider.lookupInterceptorReference(XmlDocConfigurationProvider.java:1005) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at 
            
            ..........
            
              com.opensymphony.xwork2.factory.DefaultInterceptorFactory.buildInterceptor(DefaultInterceptorFactory.java:65) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            ... 68 common frames omitted
    Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
            at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:161) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:53) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:461) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:475) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:302) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            ... 78 common frames omitted
    Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
            at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:492) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.lambda$inject$3(ContainerImpl.java:526) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:567) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:526) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:50) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:159) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            ... 82 common frames omitted
    Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
            at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:304) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:435) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:490) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            ... 87 common frames omitted
    Caused by: java.lang.reflect.InvocationTargetException: null
            at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118) ~[na:na]
            at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
            at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:302) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            ... 89 common frames omitted
    Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
            at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
            at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3601) ~[na:na]
            at java.base/java.lang.Class.getDeclaredMethods(Class.java:2686) ~[na:na]
            at com.opensymphony.xwork2.inject.ContainerImpl.addInjectors(ContainerImpl.java:101) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$1.create(ContainerImpl.java:82) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$1.create(ContainerImpl.java:78) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.util.ReferenceCache$CallableCreate.call(ReferenceCache.java:155) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na]
            at com.opensymphony.xwork2.inject.util.ReferenceCache.internalCreate(ReferenceCache.java:79) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.util.ReferenceCache.get(ReferenceCache.java:123) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.<init>(ContainerImpl.java:357) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$2.create(ContainerImpl.java:312) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl$2.create(ContainerImpl.java:309) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.util.ReferenceCache$CallableCreate.call(ReferenceCache.java:155) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na]
            at com.opensymphony.xwork2.inject.util.ReferenceCache.internalCreate(ReferenceCache.java:79) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.util.ReferenceCache.get(ReferenceCache.java:123) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.getConstructor(ContainerImpl.java:580) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:489) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.lambda$inject$3(ContainerImpl.java:526) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:567) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:526) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:50) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:159) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:53) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:503) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.lambda$getInstance$4(ContainerImpl.java:531) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:567) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:531) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at org.apache.struts2.views.freemarker.FreemarkerManager.setContainer(FreemarkerManager.java:235) ~[struts2-core-7.0.0-M8.jar:7.0.0-M8]
            at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
            ... 91 common frames omitted
    Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
            at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
            at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
            at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[na:na]
            ... 122 common frames omitted

градиентный файл:

buildscript {
    repositories {
        mavenCentral()
        google()
        gradlePluginPortal()
    }
    dependencies {
    }
}


plugins {
    id 'java'
    id 'war'
    id 'org.springframework.boot' version "${springBootVersion}"
    id 'io.spring.dependency-management' version '1.1.6'
    id 'com.github.andygoossens.modernizer' version "${modernizerPluginVersion}"
    id 'io.freefair.lombok' version "8.6"
}

repositories {
    mavenCentral()
    maven {
        url "https://repository.apache.org/content/groups/staging/"
    }
}

configurations.all {
    resolutionStrategy {
        force 'org.ow2.asm:asm:9.7'
    }
    exclude group:"commons-logging", module:"commons-logging"
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(22)
    }
}

if (project.hasProperty("prod") || project.hasProperty("gae")) {
    apply from: "gradle/profile_prod.gradle"
} else {
    apply from: "gradle/profile_dev.gradle"
}

group = "de.tas.cofusim.app"
version = "5.3.1-SNAPSHOT"
//version = "5.3.0-RC"
//version = "5.3.0"

dependencies {
    implementation 'org.ow2.asm:asm:9.7'

    compileOnly 'jakarta.servlet:jakarta.servlet-api:6.1.0'
    implementation 'jakarta.el:jakarta.el-api:6.0.0'
    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'
    implementation 'jakarta.annotation:jakarta.annotation-api:3.0.0'
    implementation 'org.glassfish.jaxb:jaxb-runtime:4.0.5'
    implementation 'jakarta.activation:jakarta.activation-api:2.1.3'

    // Spring Boot & Framework
    compileOnly "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
    implementation "org.springframework:spring-core:${springFrameWork}"
    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}"
    implementation "org.springframework.boot:spring-boot-starter-web:${springBootVersion}"
    implementation "org.springframework.boot:spring-boot-starter-tomcat:${springBootVersion}"

    // JSP  and jasper for embedded tomcat
    implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl:3.0.1'
    implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0'
    implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:10.1.25'

    implementation 'org.apache.logging.log4j:log4j-api:2.23.0'
    implementation 'org.apache.logging.log4j:log4j-core:2.23.1'

    // Apache Struts
    implementation "org.apache.struts:struts2-core:${strutsVersion}"
    implementation 'com.jgeppert.struts2.jquery:struts2-jquery-tree-plugin:5.0.4'
    implementation "org.apache.struts:struts2-json-plugin:${strutsVersion}"
    implementation "org.apache.struts:struts2-spring-plugin:${strutsVersion}"
    implementation "org.apache.struts:struts2-config-browser-plugin:${strutsVersion}"
    testImplementation "org.apache.struts:struts2-junit-plugin:${strutsVersion}"

    implementation 'commons-net:commons-net:3.11.1'
    implementation 'org.apache.commons:commons-lang3:3.14.0'
    implementation 'org.apache.commons:commons-text:1.12.0'

    implementation 'com.google.code.gson:gson:2.11.0'

    implementation 'org.bouncycastle:bcprov-jdk18on:1.78.1'

    implementation 'com.thoughtworks.xstream:xstream:1.4.20'

    testImplementation "org.springframework.boot:spring-boot-starter-test:${springBootVersion}"
    testImplementation "org.springframework.boot:spring-boot-test:${springBootVersion}"
    testImplementation 'org.mockito:mockito-inline:5.2.0'

    implementation "org.springframework.boot:spring-boot-starter-websocket:${springBootVersion}"
    implementation "org.springframework:spring-websocket:${springFrameWork}"
    implementation "org.springframework:spring-messaging:${springFrameWork}"
}

springBoot {
    mainClass = "de.tas.cofusim.webapp.CoFuSimApp"
}

defaultTasks "bootRun"

bootRun
{
    enableAssertions = true
}

compileJava.options.encoding = "UTF-8"

compileTestJava {
    options.encoding = "UTF-8"
    options.compilerArgs.add("-Xlint:deprecation")
}

test {

    useJUnitPlatform()
    exclude "**/*IT*", "**/*IntTest*"
    testLogging {
        events 'FAILED', 'SKIPPED'
    }

    reports.html.required = true
}

градиент.свойства:

springBootVersion=3.3.1
springFrameWork=6.1.11
strutsVersion=7.0.0-M8

modernizerPluginVersion=1.9.2
profile=dev

Пожалуйста, добавляйте код, а не изображения кода: см. Почему бы не загружать изображения ошибок кода, когда задаете вопрос. Отредактируйте вопрос и включите фрагменты кода.

J Asgarov 16.07.2024 14:49

@j-asgarov Я изменил свои данные, как просили. Я использовал изображения из-за ограничения на количество символов. Извините за доставленные неудобства.

Readone Mohamed 16.07.2024 15:12

вы используете какую-то старую зависимость в pom, которая не работает с современной версией Spring Boot, которая опирается на современную спецификацию сервлета с использованием Джакарты. Обновите все свои зависимости и, если проблема не исчезнет, ​​добавьте pom.xml к вопросу.

J Asgarov 16.07.2024 15:21

@j-asgarov, можешь сказать мне, какая зависимость? Я их уже почистил. Ты должен сказать мне, кто из них старый.

Readone Mohamed 16.07.2024 15:27

Как я уже сказал — проверьте каждую зависимость в вашем pom.xml и убедитесь, что каждая из них находится в числе последних версий. Если не помогло, добавьте свой pom.xml к вопросу

J Asgarov 16.07.2024 15:31

@j-asgarov Добавил мой файл Gradle.

Readone Mohamed 16.07.2024 15:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
6
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас есть зависимость от struts2-jquery-tree-plugin.

    implementation 'com.jgeppert.struts2.jquery:struts2-jquery-tree-plugin:5.0.4'

Он по-прежнему несовместим со Struts 7. Смотрите выпуск Поддержка Struts 7 #470.

Спасибо, это была проблема. При сканировании через зависимости Gradle это не появилось, и я просмотрел несколько плагинов. Но это было виновником.

Readone Mohamed 17.07.2024 09:04

Когда выйдет Struts 7, они будут поддерживать спецификацию Jakarta EE. Также, если вы используете сторонние плагины со Struts, прочтите примечания к выпуску плагинов и улучшите исходный код в репозитории :)

Roman C 17.07.2024 10:48

Другие вопросы по теме