Получение :: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Объект;)V

#java #xsd #xmlbeans #apache-poi-4

Вопрос:

Я использую api Poi(poi, poi-ooxml-схемы,poi-ooxml-4.4.1 ) для операций экспорта-импорта и теперь обновил xmlbeans с версии 3.0.2 до версии 5.0.1 после обновления xmlbeans-5.0.1 при создании новой SXSSFWorkbook(100)возникает ошибка;

…. ява.ланг.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Объект;)V java.lang.NoClassDefFoundError: Не удалось инициализировать класс org.apache.poi.xssf.model.SharedStringsTable

и используя версию jaxb-api-2.4.0-b180830.0359.

Комментарии:

1. вы пробовали POI 5.0.0? … вам нужно только добавить зависимость в poi-ooxml:5.0.0, которая зависит от / извлекает XMLBeans и другие библиотеки. удалите все другие / старые зависимости, которые были связаны с POI

2. спасибо @kiwiwings, Да, после обновления POI(с 4.4.1 до 5.0.0) он начал работать, но совместим ли xmlbeans 5.0.1 с версией POI-4.4.1?

3. короткий ответ: нет — я изменил так много деталей под капотом в XMLBeans для поддержки JPM, поэтому, пожалуйста, используйте версию, на которую ссылается POI. Начиная с POI 5, мы также предоставляем схемы с каждым выпуском POI, чтобы свести к минимуму путаницу, какую банку схемы следует использовать.