Приложение не может найти XSD-файл, используя One-Jar - PullRequest
0 голосов
/ 06 ноября 2011

Я использую плагин One-Jar maven для упаковки моего java в один jar со всеми его зависимостями.

Проект имеет ресурс schema.xsd.

, когда я запускаю jarфайл, используя java -jar myJar.one-jar Я получаю следующую ошибку:

 org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document
 'jar:file:/../lib/myJar.one-jar.jar!/lib/myJar.jar!/schema.xsd', because 1) could not find 
the document; 2) the document could not be read; 3) the root element of the document is not 
<xsd:schema>.

Есть идеи, почему это происходит?

Примечание: приложение имеет log4j.properties в качестве ресурса и распознает его.

1 Ответ

0 голосов
/ 06 ноября 2011

Я почти уверен, что реализация Jar-соединения с URL-адресом в jre не может обрабатывать более одного уровня вложенности (этот URL содержит 2 символа '!'). не знаю, как one-jar обрабатывает чтение файлов классов из вложенных jar, но вам может потребоваться извлечь xsd во временный файл, прежде чем вы сможете его использовать.

лично я обычно использую плагин сборки maven с целью "jar-with-dependencies", которая прекрасно работает, если у вас нет конфликтующих файлов в одном или ваших банках.

...