#java #soap #jax-ws #javax.xml
#java #soap #jax-ws #javax.xml
Вопрос:
При создании экземпляра SOAP-клиента я получаю исключение NullPointerException
@WebServiceClient(name = "QWEServiceManager", targetNamespace = "http://external.ws.services.abc.com/", wsdlLocation = "file:/C:/Users/XYZ/Desktop/77777/QWEServiceManagerService.wsdl")
public class QWEServiceManagerService extends Service
Когда я пытаюсь создать экземпляр клиента для вызова службы SOAP
QWEServiceManagerService serv = new QWEServiceManagerService()
приведенное выше выдает
Exception in thread "main" javax.xml.ws.WebServiceException: Unable to createEndpointReference Provider
at javax.xml.ws.spi.Provider.provider(Provider.java:160)
at javax.xml.ws.Service.<init>(Service.java:92)
at QWEServiceManagerService.<init>(QWEServiceManagerService .java:48)
at WsClient.main(WsClient.java:26)
Caused by: java.lang.NullPointerException
at javax.xml.ws.spi.Provider.provider(Provider.java:152)
... 3 more
Ответ №1:
Проблема заключалась в том, что Java перестала предоставлять реализацию поставщика по умолчанию выше Java 6 .
Он пытается найти Impl с помощью следующих шагов:
- Сначала загрузчиком службы
- Из свойств JDK (из $java.home/lib/jaxws.properties)
- Используйте системное свойство
- Поиск с помощью загрузчика службы OSGi
Итак, проще говоря, добавление зависимости с реализацией provider решает проблему.
Для меня добавление зависимости jaxws-rt решило проблему.
Примечание: я столкнулся с другой проблемой зависимости, для которой мне нужно было добавить еще одну зависимость в stax-ex, чтобы решить все мои проблемы с зависимостями.