javax.xml.ws.WebServiceException: порт {http://tempuri.org/}WSHttpBinding_IDWService не найден - PullRequest
7 голосов
/ 11 марта 2011

Я пытаюсь использовать веб-сервис в Java, используя клиент, сгенерированный из файла wsdl с помощью wsdl2java.

Я использую версию Eclipse Helios и jdk 1.6.0_20, и я сгенерировал файлы .class, используя wsld2java с параметрами:

"- dc: \ WebServices \ Generated -client -verbose -compile -autoNameResolution -p org.dwservice -sn DWService -wsdlLocation /WEB-INF/wsdl/DWService.wsdl c: \ WebServices \ DWd" wsw5. *

Я упаковал полученные файлы в файл .jar и добавил его в свой проект, который компилируется нормально. Но когда я пытаюсь использовать веб-сервис, я получаю исключение:

javax.xml.ws.WebServiceException: Port {http://tempuri.org/}WSHttpBinding_IDWService not found.
at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:311)
at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:302)
at javax.xml.ws.Service.getPort(Service.java:92)
at org.dwservice.DWService.getWSHttpBindingIDWService(DWService.java:63)

А это мой код:

import org.dwservice.*;
...

private DWService dwService = new DWService();
private IDWService iDWService = ***dwService.getWSHttpBindingIDWService()***;

Любая идея была бы очень признательна.

1 Ответ

8 голосов
/ 11 мая 2012

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

Ваша команда wsdl2java предполагает, что ваш WSDL является локальным, и вы упаковываете его в веб-приложение.Я подозреваю, что приложение не находит упакованный WSDL во время выполнения.Один из вариантов - загрузить его как ресурс Java и передать его местоположение в конструктор вашей службы:

QName qname = new QName("my.name.space", "myName");
URL wsdlLocation = MyServiceClient.class.getResource("/WEB-INF/wsdl/DWService.wsdl");

dwService = new DWService(wsdlLocation, qname);

Если вы используете этот подход, проверьте трижды путь к вашему WSDL.Функция getResource () легко завершается с ошибкой, что приводит к той же ошибке.

...