java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest - PullRequest
5 голосов
/ 02 декабря 2011

Я обрабатываю загрузку файлов с помощью многочастного фильтра, как описано здесь . Я создал файл WAR, развернул его на сервере Weblogic 10.3.3 и получил ошибку:

<Dec 8, 2011 5:37:07 PM IST> <Error> <HTTP> <BEA-101020> <[ServletContext@26087289[app:playground module:playground.war path:/playground spec-version:null]] Servlet failed with Exception
java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List;
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at net.balusc.webapp.MultipartFilter.parseRequest(MultipartFilter.java:169)
    at net.balusc.webapp.MultipartFilter.doFilter(MultipartFilter.java:123)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
    Truncated. see log file for complete stacktrace

Затем я развернул тот же WAR-файл на сервере Tomcat 7.0.11, и он успешно работает. Как это вызвано и как я могу успешно развернуть на Weblogic?

Ответы [ 3 ]

6 голосов
/ 08 декабря 2011

Развертывание в Weblogic 10.3.3 приводит к ошибке:

java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest (Lorg / apache / commons / fileupload / RequestContext;) Ljava / util / List;

Развертывание на Tomcat 7.0.11 прошло успешно.

Weblogic уже поставляется с библиотеками Apache Commons FileUpload. Эта ошибка указывает, что они имеют более старую версию, чем у вас в /WEB-INF/lib.

У вас есть как минимум 3 варианта:

  1. Удалите файлы JAR из /WEB-INF/lib.
  2. Замените их точно такой же версией, которую использует Weblogic.
  3. Измените политику загрузки классов Weblogic, чтобы сначала загружать классы из приложения.
2 голосов
/ 02 декабря 2011

Вы можете использовать следующий API для загрузки файлов на сервер JBoss http://commons.apache.org/fileupload/index.html

0 голосов
/ 07 апреля 2015

Проверьте, есть ли в вашей библиотеке Jar дубликаты файлов Jar с разными версиями.Удалить файл старой версии.

...