2015-09-22 3 views
0

Мы используем POI Apache для создания простой электронной таблицы. Все работает в среде разработки. При выпуске проект экспортируется как запущенный JAR; эта банка и все необходимые библиотеки размещаются на центральном сервере. Различные ПК ссылаются на эти же файлы.Ошибка ApI POI, когда нет в IDE

На большинстве ПК (Linux и Win7) все работает. На меньшинстве машин Win7, однако, мы получаем ошибку:

DOMSource cannot be processed: check that saxon9-dom.jar is on the classpath.

Я попытался adding the -D option as suggested here, но безрезультатно. В любом случае, непонятно, почему зависимости должны ломаться только на определенных машинах. Может ли быть разница в порядке загрузки библиотек?

Я также попытался извлечь все зависимости в экспортированный файл jar. Этот (очень толстый!) Файл jar работает - или не работает - на одних и тех же машинах.

Я в недоумении: что может привести к тому, что POI Apache потерпит неудачу на определенных машинах?

+0

Это не похоже на ошибку POI Apache - из чего она исходит? Есть ли полная стек? – Gagravarr

+0

Нет трассировки стека. Это изолированное сообщение, которое записывается на консоль (три раза) при запуске программы. Это определенно выходит из (или вызвано) классами POI. Старомодная отладка: я ставлю System.out.println непосредственно перед самым и сразу после самого первого вызова метода POI. –

+1

Apache POI использует XML-обработку, предоставленную JVM, у вас есть какая-то странная конфигурация обработки XML в вашей JVM? – Gagravarr

ответ

0

Оказалось, что это была проблема с более старой версией LibreOffice (в частности, затронутые системы все еще работали с версией 3.6). Обновление LibreOffice 5.0 решило проблему.

Точно как/почему LibreOffice влияет на обработку XML в Apache POI, неясно. Во всяком случае, сейчас это неважно.

Смежные вопросы