JBOSS EAP 6.2.2 Apache Common IO Singer Ошибка для IOUtil.s

1

У меня есть веб-приложение, использующее Apache Common IO версии 2.4. Когда я развертываю это приложение на JBOSS 6.2.2, я получаю следующую ошибку:

Не удалось определить класс org.apache.commons.io.IOUtils в модуле "deployment.MyApp.war: main" из Service Module Loader: java.lang.SecurityException: подписчик класса org.apache.commons.io.IOUtils информация не соответствует информации подписчика других классов в одном пакете

Из-за этой ошибки загрузчик классов не загружает класс и, следовательно, получает NoClassDefFoundError: org/apache/commons/io/IOUtils во время выполнения. Я не уверен, как это разрешить, поскольку этот банку опубликован из фонда Apache. Я быстро проверил с jarsinger, который поставляется с JDK, и он говорит, как показано ниже.

jar без знака. (подписи отсутствуют или не поддаются анализу)

Команда, которую я запускаю: jarsigner -verify commons-io-2.4.jar

Кто-нибудь сталкивался с этой проблемой раньше? Я видел пару сообщений stackoverflow, никто не решил эту проблему.

Теги:
jboss
classloader
jboss6.x

1 ответ

0

Это происходит, когда классы, принадлежащие к одному и тому же пакету, загружаются из разных загрузчиков классов, а загруженные файлы jars имеют подписи, подписанные с разными сертификатами, или в вашем случае по меньшей мере один подписан, а один или несколько других - нет.

В JBoss EAP 6.2 commons-io предоставляется сервером, попробуйте удалить из вашей войны commons-io банку.

  • 0
    Спасибо .. Странно, это происходит только на коробке RHEL. Не на вкус Windows
  • 0
    JAR-файлы @Chetan, включенные в JBoss EAP, имеют цифровую подпись Red Hat. Это, кажется, не происходит в установке Windows.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню