Могу ли я настроить cxf для использования определенного синтаксического анализатора XML?

Есть ли способ указать, какой анализатор XML использует cxf? Либо через файл cfx.xml, либо программно?

Наше приложение имеет синтаксический анализатор Woodstox в пути к классам, и cxf, похоже, использует его по умолчанию. Однако реализация Woodstox, по-видимому, обрезает большие массивы байтов, закодированные в Base64, в пакете SOAP.

Удаление Woodstox из пути к классам устраняет эту проблему усечения, но сейчас это не вариант, поскольку другие части нашего приложения также зависят от Woodstox.

Было бы идеально, если бы я мог просто указать cxf использовать другой анализатор XML. Это возможно?


person CJS    schedule 05.02.2010    source источник


Ответы (1)


Попробуйте установить следующее системное свойство:

javax.xml.stream.XMLInputFactory=com.sun.xml.internal.stream.XMLInputFactoryImpl

См. XMLInputFactory#newInstance. () для получения подробной информации о настройке XMLInputFactory.

person Kevin    schedule 05.02.2010
comment
Спасибо за информацию о XMLInputFactory, Кевин... Хотя это в конечном итоге не сработало для меня, это полезная информация, которую нужно знать... В итоге мне пришлось переработать наше приложение, чтобы полностью удалить зависимость от Woodstox... - person CJS; 05.02.2010
comment
Вы должны иметь возможность переопределить другие фабрики синтаксического анализа XML. Знаете ли вы, какая конкретная деталь используется Woodstox? - person Kevin; 06.02.2010