Подтвердить что ты не робот

GetDispatcherType() - undefined для типа HttpServletRequest

Я импортировал динамический веб-проект Java в Eclipse IDE (который был реализован в Eclipse IDE и правильно работал).

Я получаю сообщение < getDispatcherType() undefined для типа HttpServletRequest "при запуске проекта.

Я скопировал каждый файл в IDE в соответствии со структурой и выполнил работу.

Теперь я просто хочу знать, почему я получаю эту ошибку, когда импортировал проект. Кто-нибудь сталкивался с той же проблемой? Пожалуйста, дайте мне знать, какую ошибку я мог бы сделать.

4b9b3361

Ответ 1

У меня была такая же проблема, когда у меня была противоречивая версия сервлета-api, которую я использовал в IntelliJ, которая противоречила тому, что поддерживалось в Tomcat 8.0.x... Я использовал Maven, поэтому я просто изменил свою зависимость к этому, затем выполнил чистое развертывание моего webapp, и проблема исчезла.

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
</dependency>

Ответ 2

tomcat 8.0.18, maven. Это о конфликте. Мое решение:

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
</dependency>

изменено на:

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
</dependency>

Ответ 3

Вы должны исключить "servlet-api-2.5.jar" из любой другой зависимости, которую вы можете иметь в своем pom.xml.

Попытайтесь не добавлять другой сервлет-api как компиляцию, так как ваш tomcat уже предоставляет его вам.


Мои шаги:

Я проверил, что в моей папке WEB-INF/lib был включен servlet-api-2.5.jar, поэтому я проверил полный график зависимостей на "Maven projects @IntelliJ Idea", затем я исключил эту зависимость от ВСЕХ мест, откуда она исходит. [Кнопка "Показать зависимости" подходит для этого]

Мне пришлось исключить "commons-logging" (так как он имеет зависимость от сервлета-api 2.5) от инструментов скорости. Также пришлось исключить servlet-api из jaxws- spring, который имеет прямую зависимость от области по умолчанию.

Затем просто добавьте область, предоставленную так, как вы должны, в свою зависимость javax.servlet-api.

Если вы добавите свой сервлет-api 3.0.1+ в качестве "компиляции", вы можете в конечном итоге с обоими, и первый, чтобы загрузить, победит, что совсем не хорошо.

Примечание: Я предполагаю, что эта проблема исходит из переименования groupId/artifactId из servlet-api и не переопределяется самой старой версией, включенной в проект maven.:\

Ответ 4

Я решил эту проблему, используя servlet-api.jar и jsp-api.jar из самого tomcat, поэтому зависимость будет указана с системной областью, как показано ниже:

<servlet.api.jar.path>/opt/apache-tomcat-8.0.15/lib/servlet-api.jar</servlet.api.jar.path>
<jsp.api.jar.path>/opt/apache-tomcat-8.0.15/lib/jsp-api.jar</jsp.api.jar.path>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>3.0</version>
        <scope>system</scope>
        <systemPath>${servlet.api.jar.path}</systemPath>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
        <scope>system</scope>
        <systemPath>${jsp.api.jar.path}</systemPath>
    </dependency>

Ответ 5

Если ваш tomcat имеет версию 8, используйте:

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
</dependency>

работает!

Ответ 6

Это также может произойти при обновлении от старой версии до версии Tomcat и хранении старых файлов jar, таких как j2ee.jar и javaee.jar.

j2ee.jar следует включить nerver в ваш webapp, interfae реализуется tomcat