Проблема:
При попытке в приложении создать объект клиента к веб-сервису, построенного на JAX-WS, валится исключение:
javax.xml.ws.spi.FactoryFinder$ConfigurationError: Provider org.apache.cxf.jaxws.spi.ProviderImpl not found
Причина:
Где-то в CLASSPATH переопределен JAX-WS провайдер на Apache Cxf, при этом самого Cxf в CLASSPATH нет (ну или, если используется OSGI, он может быть просто не импортирован).
Решение:
Возможных решения, в общем-то, 3:
- Найти и положить в CLASSPATH / импортировать бандл Cxf
- Найти, где в CLASSPATH переопределен JAX-WS-провайдер и удалить переопределение. Переопределяется он файлом META-INF/services/javax.xml.ws.spi.Provider, в который записано имя класса провайдера.
- Переопределить провайдер обратно в своем приложении так, чтобы Ваш файл лежал в CLASSPATH ближе, чем вражеский. В случае с собираемым Maven`ом приложением нужно создать файл src/main/resources/META-INF/services/javax.xml.ws.spi.Provider, и записать в него (если Вы хотите вернутся к провайдеру по-умочанию, который идет с JDK):
com.sun.xml.internal.ws.spi.ProviderImpl
Комментариев нет:
Отправить комментарий