getDispatcherType () no está definido para el tipo HttpServletRequest

He importado un proyecto web dynamic de Java en el Eclipse IDE (que se implementó en Eclipse IDE y funciona correctamente).

HttpServletRequest error ” getDispatcherType() no está definido para el tipo HttpServletRequest ” al ejecutar el proyecto.

He copiado todos los archivos en IDE según la estructura y el trabajo está hecho.

Ahora solo quiero saber por qué recibo este error cuando importé el proyecto. ¿Alguien se enfrentó al mismo problema? Por favor, hágame saber qué error podría haber cometido.

Tuve el mismo problema cuando tenía una versión conflictiva de servlet-api que estaba usando en IntelliJ que estaba en conflicto con lo que era compatible con Tomcat 8.0.x … Estaba usando Maven, así que cambié mi dependencia a esto, luego hice un Despliegue limpio de mi aplicación web y el problema desapareció.

  javax.servlet javax.servlet-api 3.1.0  

tomcat 8.0.18, maven. Se trata de conflicto de lib. Mi solución es:

  javax.servlet servlet-api 2.5  

cambiado a:

  javax.servlet javax.servlet-api 3.1.0  

Debe excluir “servlet-api-2.5.jar” de cualquier otra dependencia que pueda tener en su pom.xml.

Intenta no agregar un servlet-api diferente como comstackción, ya que tu tomcat ya te lo proporciona.


Mis pasos:

Comprobé que había un servlet-api-2.5.jar incluido en mi carpeta WEB-INF / lib por Maven, entonces, verifiqué el gráfico de dependencia completo en “Proyectos Maven @ Idea IntelliJ”, luego excluí esta dependencia de TODOS los lugares de donde proviene. [El botón “Mostrar dependencias” es útil para esto]

Tuve que excluir “commons-logging” (ya que tiene la dependencia de servlet-api 2.5) de velocity-tools. También tuvo que excluir servlet-api de jaxws-spring, que tiene una dependencia directa del scope predeterminado.

Luego, solo agregue el scope proporcionado como debería en su dependencia javax.servlet-api.

Si agrega su servlet-api 3.0.1+ como “comstackr”, puede terminar con ambos, y el primero en cargar ganará, lo que no es bueno en absoluto.

Nota: mi suposición es que este problema proviene del cambio de nombre de groupId / artifactId de servlet-api, y no se reemplaza con la versión más antigua incluida en el proyecto maven. : \

Resolví este problema utilizando servlet-api.jar y jsp-api.jar desde el propio tomcat, por lo que la dependencia se especificará con el scope del sistema como se muestra a continuación:

 /opt/apache-tomcat-8.0.15/lib/servlet-api.jar /opt/apache-tomcat-8.0.15/lib/jsp-api.jar  javax.servlet servlet-api 3.0 system ${servlet.api.jar.path}   javax.servlet jsp-api 2.2 system ${jsp.api.jar.path}  

Si tu tomcat es la versión 8 usa:

  javax.servlet javax.servlet-api 3.1.0  

¡trabajó!

Esto también puede suceder cuando se actualiza desde una versión Tomcat anterior a otra y se mantienen los archivos jar antiguos, como j2ee.jar y javaee.jar.

j2ee.jar debe incluir nerver en su aplicación web, la interfaz es implementada por tomcat