由于异常没有安装可选组件org.springframework.web.servlet.tags.form.X

问题描述 投票:0回答:1

我正在尝试将 app.war 文件部署到 Wildfly 24.0。当我使用 mvn clean install 生成 WAR 文件时,我没有收到任何错误。我正在使用 Spring Boot 3.0.4、Maven 和 Java 17。一切正常,直到我尝试在 Wildfly 服务器上部署 WAR 文件,我收到这条警告消息:

(MSC service thread 1-2) WFLYEE0007: Not installing optional component org.springframework.web.servlet.tags.form.HiddenInputTag due to an exception (enable DEBUG log level to see the cause)
16:04:59,240 INFO  [org.infinispan.CONTAINER] (ServerService Thread Pool -- 78) ISPN000128: Infinispan version: Infinispan 'Taedonggang' 12.1.4.Final
16:04:59,303 INFO  [org.infinispan.CONFIG] (MSC service thread 1-1) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
16:04:59,306 INFO  [org.infinispan.CONFIG] (MSC service thread 1-1) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
16:04:59,362 INFO  [org.infinispan.CONTAINER] (ServerService Thread Pool -- 78) ISPN000556: Starting user marshaller 'org.wildfly.clustering.infinispan.spi.marshalling.InfinispanProtoStreamMarshaller'
16:04:59,471 INFO  [org.infinispan.CONTAINER] (ServerService Thread Pool -- 78) ISPN000025: wakeUpInterval is <= 0, not starting expired purge thread
16:04:59,509 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 78) WFLYCLINF0002: Started http-remoting-connector cache from ejb container
16:04:59,548 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit."wrapper.war".undertow-deployment.UndertowDeploymentInfoService: org.jboss.msc.service.StartException in service jboss.deployment.unit."wrapper.war".undertow-deployment.UndertowDeploymentInfoService: Failed to start service
        at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1731)
        at [email protected]//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
        at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
        at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
        at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
        at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1363)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalArgumentException: UT010009: Servlet app of type class org.springframework.web.servlet.DispatcherServlet does not implement javax.servlet.Servlet
        at [email protected]//io.undertow.servlet.api.ServletInfo.<init>(ServletInfo.java:98)
        at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.createServletConfig(UndertowDeploymentInfoService.java:753)
        at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.start(UndertowDeploymentInfoService.java:305)
        at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
        at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
        ... 6 more

正因为如此,我收到了多条警告信息。我已经检查过,org.springframework.web 在我的项目中,也在 wildfly 服务器的模块中。这就是我的 mvn dependency:tree 的样子:

[INFO] +- com.splunk:splunk:jar:1.9.3:compile
[INFO] |  +- commons-cli:commons-cli:jar:1.2:compile
[INFO] |  +- com.google.code.gson:gson:jar:2.9.1:compile
[INFO] |  \- net.sf.opencsv:opencsv:jar:2.3:compile
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:3.0.4:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:3.0.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:3.0.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:3.0.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:3.0.4:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.4.5:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.4.5:compile
[INFO] |  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.19.0:compile
[INFO] |  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.19.0:compile
[INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:2.0.6:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.33:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-json:jar:3.0.4:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.14.2:compile
[INFO] |  |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.14.2:compile
[INFO] |  |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.14.2:compile
[INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.14.2:compile
[INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.14.2:compile
[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.14.2:compile
[INFO] |  +- org.springframework:spring-web:jar:6.0.6:compile
[INFO] |  |  +- org.springframework:spring-beans:jar:6.0.6:compile
[INFO] |  |  \- io.micrometer:micrometer-observation:jar:1.10.4:compile
[INFO] |  |     \- io.micrometer:micrometer-commons:jar:1.10.4:compile
[INFO] |  \- org.springframework:spring-webmvc:jar:6.0.6:compile
[INFO] |     +- org.springframework:spring-aop:jar:6.0.6:compile
[INFO] |     +- org.springframework:spring-context:jar:6.0.6:compile
[INFO] |     \- org.springframework:spring-expression:jar:6.0.6:compile
[INFO] +- org.springframework.boot:spring-boot-starter-tomcat:jar:3.0.4:provided
[INFO] |  +- jakarta.annotation:jakarta.annotation-api:jar:2.1.1:compile
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:10.1.5:provided
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:10.1.5:provided
[INFO] |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:10.1.5:provided
[INFO] \- org.springframework.boot:spring-boot-starter-test:jar:3.0.4:test
[INFO]    +- org.springframework.boot:spring-boot-test:jar:3.0.4:test
[INFO]    +- org.springframework.boot:spring-boot-test-autoconfigure:jar:3.0.4:test
[INFO]    +- com.jayway.jsonpath:json-path:jar:2.7.0:test
[INFO]    |  +- net.minidev:json-smart:jar:2.4.8:test
[INFO]    |  |  \- net.minidev:accessors-smart:jar:2.4.8:test
[INFO]    |  |     \- org.ow2.asm:asm:jar:9.1:test
[INFO]    |  \- org.slf4j:slf4j-api:jar:2.0.6:compile
[INFO]    +- jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.0:test
[INFO]    |  \- jakarta.activation:jakarta.activation-api:jar:2.1.1:test
[INFO]    +- org.assertj:assertj-core:jar:3.23.1:test
[INFO]    |  \- net.bytebuddy:byte-buddy:jar:1.12.23:test
[INFO]    +- org.hamcrest:hamcrest:jar:2.2:test
[INFO]    +- org.junit.jupiter:junit-jupiter:jar:5.9.2:test
[INFO]    |  +- org.junit.jupiter:junit-jupiter-api:jar:5.9.2:test
[INFO]    |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO]    |  |  +- org.junit.platform:junit-platform-commons:jar:1.9.2:test
[INFO]    |  |  \- org.apiguardian:apiguardian-api:jar:1.1.2:test
[INFO]    |  +- org.junit.jupiter:junit-jupiter-params:jar:5.9.2:test
[INFO]    |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.9.2:test
[INFO]    |     \- org.junit.platform:junit-platform-engine:jar:1.9.2:test
[INFO]    +- org.mockito:mockito-core:jar:4.8.1:test
[INFO]    |  +- net.bytebuddy:byte-buddy-agent:jar:1.12.23:test
[INFO]    |  \- org.objenesis:objenesis:jar:3.2:test
[INFO]    +- org.mockito:mockito-junit-jupiter:jar:4.8.1:test
[INFO]    +- org.skyscreamer:jsonassert:jar:1.5.1:test
[INFO]    |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO]    +- org.springframework:spring-core:jar:6.0.6:compile
[INFO]    |  \- org.springframework:spring-jcl:jar:6.0.6:compile
[INFO]    +- org.springframework:spring-test:jar:6.0.6:test
[INFO]    \- org.xmlunit:xmlunit-core:jar:2.9.1:test

这就是 wildfly 服务器的 module.xml 的样子:

<?xml version="1.0"?>
<module xmlns="urn:jboss:module:1.1" name="org.springframework.spring">
  <resources>
    <resource-root path="spring-boot-maven-plugin-3.0.3.jar"/>
    <resource-root path="spring-boot-starter-3.0.3.jar"/>
    <resource-root path="spring-boot-starter-tomcat-3.0.3.jar"/>
    <resource-root path="spring-boot-starter-web-3.0.3.jar"/>
    <resource-root path="spring-boot-test-3.0.3.jar"/>
    <resource-root path="spring-core-6.0.5.jar"/>
    <resource-root path="spring-web-6.0.5.jar"/>
    <resource-root path="spring-webmvc-6.0.6.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="org.apache.commons.logging"/>
  </dependencies>
</module>

我怎样才能摆脱这个问题?

我尝试更改 web.xml 中的内容但没有结果。

java spring spring-boot wildfly
1个回答
0
投票

您正在使用需要 Jakarta EE 9+ 的 Spring Boot 3。 WildFly 24 是一个 Jakarta EE 8 容器。您需要使用 Jakarta EE 10 的 WildFly 27 或可选的 Jakarta EE 9.1 的 WildFly 24 Preview。我建议使用 WildFly 27.0.1.Final,它可以在 WildFly 下载 页面上找到..

© www.soinside.com 2019 - 2024. All rights reserved.