2010-12-15 5 views
1

Я использую Apache FileUpload и я получаю java.lang.NoClassDefFoundErrorjava.lang.NoClassDefFoundError при использовании Apache FileUpload

Моя первая мысль была, чтобы проверить, был ли .jar на пути к классам - то, что я заметил (в Затмении) является то, что под областью библиотеки, есть две различные секции:

  • Apache Tomcat v6.0
  • Web App Libraries

Все ВЗ ее библиотеки перечислены в разделе «Библиотеки веб-приложений», и эта конкретная библиотека указана в разделе Apache Tomcat v6.0

Я предполагаю, что это вызывает проблему ... мой код здесь ниже ... но я думаю, что это config, а не проблемы с кодом.

И, наконец, web.xml не является проблемой, поскольку я извлек материал FileUpload из сервлета, и сервлет будет найден просто отлично.

public class SaveImage extends HttpServlet{ 

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { 
    System.out.println("Got here"); 
    response.setContentType("text/html;charset=UTF-8"); 
    boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
} 
+2

У этого * есть * проблема с classpath. То, что думает ваша IDE, находится в пути к классам, не так важно, как то, что, по мнению веб-сервера, находится в пути к классам. Что находится в папке 'WEB-INF/lib' после развертывания вашего приложения (в целевом каталоге развертывания)? – Asaph

+0

Дело в том, что контейнер сервлетов тестирования встроен в Eclipse, поэтому все, что думает Eclipse на пути к классам, - это то, что Tomcat получит (надеюсь, это имеет смысл). Но спасибо за это, я знаю, где искать проблемы сейчас. – Ankur

+0

Спасибо, Асаф, ты был прав, теперь все решено. В основном мне нужно удалить некоторые вещи, которые попали на путь сборки Tomcat, и прочитать их на пути сборки «Библиотеки веб-приложений». – Ankur

ответ

1

Это имеет быть проблемой CLASSPATH. То, что думает ваша IDE, находится в пути к классам, не так важно, как то, что, по мнению веб-сервера, находится в пути к классам. Что находится в папке WEB-INF/lib после развертывания вашего приложения (в целевом каталоге развертывания)? Это то, что представляет собой реальный classpath (плюс, конечно, и библиотеки веб-сервера).

Смежные вопросы