Как выбрать реализацию sjsxp и wstx, если они оба находятся в classpath - PullRequest
0 голосов
/ 22 июля 2010

Axis2 использует wstx для woodstox, в то время как другая часть моего проекта интенсивно тестировалась с sjsxp, и мы не можем позволить себе повторить тот же тест.Теперь существует проблема с анализом SOAP-сообщения с axis2, что если я уберу sjsxp, проблема исчезнет.Есть ли способ указать axis2 использовать реализацию wstx и оставить остальную часть проекта в покое, чтобы использовать реализацию sjsxp?

1 Ответ

0 голосов
/ 11 августа 2010

Самый простой способ - никогда не использовать XMLInputFactory.createInstance () (и то же самое для XMLOutputFactory). Скорее используйте явные конструкторы - цель этих методов обнаружения хороша, но, к сожалению, они, как мне кажется, доставляют больше хлопот, чем пользы. Чтобы уменьшить явные зависимости от непосредственного использования конструкторов, вероятно, лучше использовать библиотеку внедрения зависимостей, такую ​​как Guice (Spring и другие тоже так сделают), чтобы создание экземпляров происходило только в одном месте.

Это будет работать для вашей части проекта, но не решит проблему Axis2. Я подозреваю, что есть настройка для Axis2, но я не знаю, что это будет за руку.

...