Red de conocimiento informático - Problemas con los teléfonos móviles - El proyecto Springboot se compila y se inicia normalmente, pero el Tomcat integrado no se puede iniciar y se informa un error.

El proyecto Springboot se compila y se inicia normalmente, pero el Tomcat integrado no se puede iniciar y se informa un error.

Al optimizar la configuración de dependencia POM del proyecto, se produjo el siguiente error en el proyecto

Verifique el registro de errores cuidadosamente: El motivo es: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName( )Ljava/lang / String;

Como regla general, debería estar muy contento cuando vea NoSuchMethodError en el mensaje de excepción, porque este error generalmente es causado por un conflicto jar. Obtenga javax.servlet.Servlet-api según la información relevante del archivo de clase ServletContext en el paquete Servlet-api. Paquete servlet-api, verifique la versión del paquete servlet-api a través de dependencias

Puede ver que la referencia de unión a la que se hace referencia en el paquete jcifs depende del paquete servlet-api, excluyendo las dependencias

En este momento, verifique la versión del paquete servlet-api a través de dependencias

En este momento, verifique a través de dependencias

En este momento, puede encontrar que la dependencia de servlet-api api ya no existe. Inicie el proyecto nuevamente y descubrió que el proyecto se inició normalmente y el problema se resolvió.

No existe el método getVirtualServerName() en la versión inferior 2.4 servlet-api.jar, pero existe este método en la versión superior del paquete servlet-api.jar (javax.servlet-api-3.1.0 .jar).

El tomcat-embed-core incrustado en Springboot entra en conflicto con la clase ServletContext en servlet-api.jar. Un proyecto springboot normal no necesita depender de servlet-api.jar. de lo contrario, el contenedor integrado no se puede iniciar normalmente

Cuando use spring-data-hadoop-hbase, también debe excluir la dependencia de servlet-api.jar; de lo contrario, no se iniciará correctamente.

.