Обратите внимание на две вещи:
1.com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
имеет подсказку для вас: это внутренняя реализация (в отличие от публичного API).Он подвержен изменениям и не должен быть главным выбором для развития производства.
2.Я обнаружил, что com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
- лучшая реализация, которая отвечает всем моим потребностям, и, насколько я могу судить, она соответствует спецификации.
Вы можете легко увидеть конфликт.Я надеюсь, что однажды появится стандарт платформы, публичный API для реализации Document и для всех его фабрик и тому подобное.
Вот мой опыт:
игра с META-INF /Службы и порядок JAR в classpath казались хаком, работали еще хуже и, в конце концов, я отошел от этого подхода.Вот почему у меня это не сработало: на пути к классам было более 2-х сторонних реализаций, поэтому не было надежды получить .xerces.internal.
по умолчанию.Однако, указав его так, как System Property, переопределит его для всего, что не сработало для сторонних продуктов.
• • • В итоге я создал свойство и загрузил точную фабрику, которую явно хотел, без , опираясь на механизм поиска через META-INF / services и системные свойства.
Кстати, разные фабрики используют разные этапы поиска, что несовместимо и Iнадеюсь, что Oracle сможет найти способ стандартизировать этот процесс и сделать его более гибким и управляемым .