XMLBeans изменяет расположение сгенерированных по умолчанию файлов .xsb - PullRequest
0 голосов
/ 08 ноября 2018

ОК, поэтому у меня есть основное приложение, которое использует XMLBeans 3.0. Я пытаюсь создать автономную JVM, используя Java10 и Jlink. Поэтому я использую команду scomp для генерации своих классов Java на основе некоторого файла XSD, и я называю этот JAR-файл custom.jar. Я открыл custom.jar и заметил, что scomp помещает файлы .xsb в этот пакет:

 schemaorg_apache_xmlbeans.system.s2CA052CB375796887D9B5CB20D4C89AC

Теперь мой проект JLink также зависит от xbean.jar. И кажется, что этот JAR также имеет пакет, подобный этому, подобный custom.jar:

schemaorg_apache_xmlbeans.system

Итак, я компилирую основной проект и создаю образ среды выполнения JVM, используя JLink. Тогда я смогу подать заявку.
Проблема состоит в том, что во время выполнения мое приложение ссылается на класс из моего custom.jar, я получаю ошибку отсутствующего файла. Глядя на трассировку стека, кажется, что загрузчик классов пытается найти мой пользовательский файл .xsb в xbean.jar, но, конечно, он не существует в этом JAR.

Я не слишком знаком, как работает загрузка классов, особенно сейчас в Java10 / modules, но кто-нибудь знает способ исправить эту проблему?

Это экспорт из module-info xbean.jar для данного пути к пакету:

exports schemaorg_apache_xmlbeans.system.sXMLCONFIG;
exports schemaorg_apache_xmlbeans.system.sXMLLANG;
exports schemaorg_apache_xmlbeans.system.sXMLSCHEMA;
exports schemaorg_apache_xmlbeans.system.sXMLTOOLS;

Это экспорт для моего custom.jar для того же пути к пакету:

exports schemaorg_apache_xmlbeans.system.s2CA052CB375796887D9B5CB20D4C89AC;

Ниже приведена трассировка стека, но, глядя на исходный код xbean.jar, это строка, которая не может найти файл .xsb:

SchemaTypeSystemImpl.this._resourceLoader.getResourceAsStream(resourcename);

Может быть, изменение в любом из файлов информации модуля или как сказать scomp изменить пакет schemaorg_apache_xmlbeans.system по умолчанию?

Спасибо заранее.

        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.RuntimeException: Could not instantiate SchemaTypeSystemImpl (java.lang.reflect.InvocationTargetException): is the version of xbean.jar correct?
        at custom/schemaorg_apache_xmlbeans.system.sD4E93FD3AF9AB0042ABA3EB739A1C5B8.TypeSystemHolder.loadTypeSystem(Unknown Source)
        at custom/schemaorg_apache_xmlbeans.system.sD4E93FD3AF9AB0042ABA3EB739A1C5B8.TypeSystemHolder.<clinit>(Unknown Source)
        ... 48 more
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
        ... 50 more
Caused by: org.apache.xmlbeans.SchemaTypeLoaderException: XML-BEANS compiled schema: Could not locate compiled schema resource schemaorg_apache_xmlbeans/system/sD4E93FD3AF9AB0042ABA3EB739A1C5B8/index.xsb (schemaorg_apache_xmlbeans.system.sD4E93FD3AF9AB0042ABA3EB739A1C5B8.index) - code 0
        at xbean/org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl$XsbReader.<init>(SchemaTypeSystemImpl.java:1519)
        at xbean/org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.initFromHeader(SchemaTypeSystemImpl.java:273)
        at xbean/org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.<init>(SchemaTypeSystemImpl.java:185)
        ... 54 more
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...