I’m trying to deploy my Spring Boot app on WildFly 34, but when I click on the context root, it gives me a forbidden error. If I add the path for the REST API, it shows "not found." I’m working with Spring Boot 2.7.2 and Java 17. I’ve tried using both javax and jakarta dependencies, but I’m still getting the same result. Below I’m attaching the pom file, the controller, and the application. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.iet.testing</groupId> <artifactId>registro.trattamenti.be</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>registro.trattamenti.be</name> <description>registro</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>17</java.version> <maven.compiler.release>${java.version}</maven.compiler.release> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <failOnMissingWebXml>false</failOnMissingWebXml> <deploy.wildfly.host>127.0.0.1</deploy.wildfly.host> <deploy.wildfly.port>9990</deploy.wildfly.port> <deploy.wildfly.username>test</deploy.wildfly.username> <deploy.wildfly.password>test</deploy.wildfly.password> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api --> <dependency> <groupId>jakarta.servlet.jsp.jstl</groupId> <artifactId>jakarta.servlet.jsp.jstl-api</artifactId> <version>3.0.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl --> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jakarta.servlet.jsp.jstl</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-maven-plugin</artifactId> <version>2.0.2.Final</version> <executions> <execution> <phase>install</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> <configuration> <filename>${project.build.finalName}.war</filename> <hostname>${deploy.wildfly.host}</hostname> <port>${deploy.wildfly.port}</port> <username>${deploy.wildfly.username}</username> <password>${deploy.wildfly.password}</password> </configuration> </plugin> </plugins> </build> </project> the controller package com.iet.testing.registro.trattamenti.be.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { private final String HELLO_WORLD= "Hello, world!"; @GetMapping("/hello") public String printHelloWorld(){ return HELLO_WORLD; } } and the application.java package com.iet.testing.registro.trattamenti.be; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.web.WebApplicationInitializer; @SpringBootApplication public class Application extends SpringBootServletInitializer implements WebApplicationInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } I tried excluding the Tomcat dependency, or using only javax or only jakarta, but in the logs, I still get the same result. 11:02:20,968 WARN [org.jboss.modules.define] (MSC service thread 1-2) Failed to define class org.springframework.web.servlet.tags.form.AbstractHtmlInputElementTag in Module "deployment.registro.trattamenti.be.war" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link org/springframework/web/servlet/tags/form/AbstractHtmlInputElementTag (Module "deployment.registro.trattamenti.be.war" from Service Module Loader): Failed to link org/springframework/web/servlet/tags/form/AbstractHtmlElementTag (Module "deployment.registro.trattamenti.be.war" from Service Module Loader): javax/servlet/jsp/tagext/DynamicAttributes at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1095) at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:351) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:276) at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:79) at org.jboss.modules.Module.loadModuleClass(Module.java:798) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:192) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:408) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:396) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:115) at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1095) at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:351 Continue reading...