Миграция Java 17, JEP-403 и Xerces — свойства ACCESS_EXTERNAL_DTD и ACCESS_EXTERNAL_SCHEMA не поддерживаются ⇐ JAVA
-
Anonymous
Миграция Java 17, JEP-403 и Xerces — свойства ACCESS_EXTERNAL_DTD и ACCESS_EXTERNAL_SCHEMA не поддерживаются
При переходе на Java 17 я попытался включить внешнюю зависимость Xerces, следуя рекомендации JEP-403. В JEP-403 в разделе «Риски и предположения» прямо указано следующее:
"Код, который использует внутреннюю копию XML-процессора Xerces в JDK. Вместо этого такой код должен использовать автономную копию библиотеки Xerces, доступную на Maven Central". (в противном случае такой код может дать сбой) https://openjdk.org/jeps/403
Однако после включения Xerces2 версии 2.12.2 два свойства, используемые нашим SAXParser, больше не поддерживаются, а именно ACCESS_EXTERNAL_DTD и ACCESS_EXTERNAL_SCHEMA.
Это известная проблема, и большинство найденных мной решений предлагают либо исключить внешний Xerces (когда он используется как транзитивная зависимость), либо использовать встроенную версию JDK.
Есть ли лучшее решение, соответствующее рекомендации JEP-403?
При переходе на Java 17 я попытался включить внешнюю зависимость Xerces, следуя рекомендации JEP-403. В JEP-403 в разделе «Риски и предположения» прямо указано следующее:
"Код, который использует внутреннюю копию XML-процессора Xerces в JDK. Вместо этого такой код должен использовать автономную копию библиотеки Xerces, доступную на Maven Central". (в противном случае такой код может дать сбой) https://openjdk.org/jeps/403
Однако после включения Xerces2 версии 2.12.2 два свойства, используемые нашим SAXParser, больше не поддерживаются, а именно ACCESS_EXTERNAL_DTD и ACCESS_EXTERNAL_SCHEMA.
Это известная проблема, и большинство найденных мной решений предлагают либо исключить внешний Xerces (когда он используется как транзитивная зависимость), либо использовать встроенную версию JDK.
Есть ли лучшее решение, соответствующее рекомендации JEP-403?