java.lang.NoSuchMethodError: org.apache.poi.xwpf.usermodel.XWPFHyperlinkRun

Я пытаюсь:

  1. Используйте текстовый документ с "MergeFields", чтобы заполнить его данными
  2. Конвертировать в PDF документ, используя Java

Раньше у меня это работало, и теперь внезапно я получаю следующую ошибку:

java.lang.NoSuchMethodError: org.apache.poi.xwpf.usermodel.XWPFHyperlinkRun.

Это происходит, когда я помещаю файл.war на сервер Amazon EC2. (все остальные библиотеки работают нормально)

Вот библиотеки, которые я использую:

fr.opensagres.xdocreport.converter.odt.odfdom (v 1.0.4)

fr.opensagres.xdocreport.template.freemarker (v 1.0.4)

org.apache.poi.xwpf.converter.core (1.0.5)

org.apache.poi.xwpf.converter.pdf (1.0.5)

org.apache.poi.xwpf.converter.xhtml (1.0.5)

org.apache.poi (3.11)

Что-то не так с моими библиотеками? или это просто проблема развертывания сервера?

Очень благодарен за помощь.

Ниже мой код:

 public byte[] wordToPdf(RequestHelper reqHelper, Map<String, Object> values, String docPath) throws IOException, XDocReportException, ServiceUnavailableException, E24Exception {
        try {
            ServletContext ctx = reqHelper.getRequest().getServletContext();
            InputStream tpl = new BufferedInputStream(ctx.getResourceAsStream(docPath));
            IXDocReport report = XDocReportRegistry.getRegistry().loadReport(tpl, TemplateEngineKind.Velocity);
            Options options = Options.getTo(ConverterTypeTo.PDF).via(ConverterTypeVia.XWPF);
            ByteArrayOutputStream pdfOut = new ByteArrayOutputStream();
            report.convert(report.createContext(values), options, pdfOut);
            byte[] pdfImage = pdfOut.toByteArray();
            return pdfImage;
        }
        catch (FileNotFoundException ex) {
        }
        return null;
    }

1 ответ

Решение

Хорошо, я наконец-то нашел решение, которое сработало для меня, поскольку у этого поста много мнений и нет ответов, я сам отвечу на него тем, кто в этом нуждается!

Я изменил версию всех библиотек, имеющих отношение к "apache.poi", на версию 1.0.4

После этого я использовал org.apache.poi версии 3.9 вместо 3.11

Итак, наконец, чтобы обернуть это... это то, что я использовал в конце

org.apache.poi.xwpf.converter.core (1.0.4)

org.apache.poi.xwpf.converter.pdf (1.0.4)

org.apache.poi.xwpf.converter.xhtml (1.0.4)

org.apache.poi (3.9)

/ Marcus

Другие вопросы по тегам