2010-07-22 4 views
0

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

ответ

0

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

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