javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax / servlet / ServletInputStream - PullRequest
1 голос
/ 08 февраля 2012

Я получаю эту ошибку с простым проектом JSP tomcat. Статьи, которые я прочитал в Google, подразумевают, что я должен включить servlet-api.jar в свой проект. Я так и сделал, но это не работает. У кого-нибудь есть идеи по этому поводу? У меня есть sql -nector в моем JRE и sql-connector.jar и cos.jar в моем пути сборки.

Ответы [ 3 ]

2 голосов
/ 08 февраля 2012

Статьи, которые я прочитал в Google, подразумевают, что я должен включить servlet-api.jar в свой проект. Я так и сделал, но он не работает

Вы должны не сделать это. Это рецепт для большего количества проблем. См. Также Как импортировать API javax.servlet в мой проект Eclipse? Удалите эти файлы из своего проекта.

Возвращаясь к вашей первоначальной проблеме, я понимаю, что вы уже сталкивались с этой проблемой до того, как вы попытались ее решить, включив в свой проект JAR-файлы, специфичные для контейнера сервлетов.

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax / servlet / ServletInputStream

Этот тип ошибки произойдет, если вы включили JAR-файл, который в свою очередь зависит от класса javax.servlet.ServletInputStream в неправильном месте в пути к классам, там, где загрузчик классов не знает о классах, которые загружаются сам контейнер сервлетов. Например, если вы включили JAR-файл Apache Commons FileUpload в собственную папку JRE/lib или JRE/lib/ext JRE вместо собственной папки /WEB-INF/lib веб-приложения. Вы должны , а не поместить специфичные для приложения классы в библиотеку JRE. Удалите эти файлы из библиотеки JRE. Это распространенная ошибка новичка, когда они столкнулись с ошибкой компиляции при использовании javac без правильного аргумента -cp / -classpath.

1 голос
/ 08 февраля 2012

Вы должны , а не включать или развертывать любые файлы сервлетов / JSP API в вашем проекте. Это приводит ко всем манерам странности. Удалите библиотеки, уже предоставленные Tomcat.

0 голосов
/ 08 февраля 2012

ServletInputStream является частью API сервлета. Если вы используете версию tomcat, которая поддерживает используемую вами версию API сервлета, и если ваша установка tomcat не повреждена, она будет работать. Сервлет-api.jar должен находиться в TOMCAT / lib

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...