Хотя я успешно загружаю файлы в свое веб-приложение в стеке SpringMVC/Widlfly/Ubuntu, я встречаю исключение NoClassDefFoundError в SpringMVC/Widlfly/CentOs. Оба стека имеют одинаковый Wildfly, тот же JDK и одинаковые конфигурации.
Окружающая среда:
Я знаю, что это исключение связано с конфликтом в классе-загрузчике.
Я, наконец, решил свою проблему. Я перевел файлы "commons-io-2.4.jar" и "commons-fileupload-1.3.1.jar" из " my-ear.ear/my-web.war/WEB-INF/lib/ " на " мое ухо".ear/lib '.
В моем случае проблема заключалась в том, что я объявлял зависимости в a war maven project
, поэтому maven копировал jar libs
в WEBINF/lib
.
Я решил эту проблему, поставив декларацию зависимостей на другой военный проект jar project pom, а не на военный проект, как я делал:
myapp-project-web-api/: <- (проект war maven)
pom.xml:
...
<dependencies>
<!-- File upload -->
<!-- deleted commons-fileupload dependency>
<!-- deleted commons-io dependency -->
...
MyApp-проект-веб-API-компонента/:
pom.xml:
...
<dependencies>
<!-- File upload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
...
org/apache/commons/io/output/DeferredFileOutputStream
и сообщите нам об этом.