2013-06-29 8 views
4

я определил мою службу на файл WSDL таким образом:По крайней мере, один WSDL, по крайней мере, одно определение услуг должно быть обеспечено

<wsdl:service name="guestbook"> 
<wsdl:port binding="tns:guestbookSOAP" name="guestbookSOAP"> 
    <soap:address location="http://localhost:8080/soapguestbook"/> 
</wsdl:port> 

Тем не менее я получаю следующее сообщение об ошибке при запуске wsimport на нем:

Должен быть предоставлен хотя бы один WSDL с по меньшей мере одним определением обслуживания.

Есть ли что-нибудь еще, что мне нужно добавить?

+0

Я имею точно такую ​​же вещь, как с JAX-WS RI 2.2.4 и 2.2.8 (оба командами 'wsimport' line tool ** и ** Задача Ant). Однако учтите, что ваш файл WSDL недействителен. Например. префикс wsdl не определен. –

+1

У меня такая же проблема, в моем случае я пытаюсь «wsimport» и «wsdl» из местоположения файла, а wsdl имеет спецификацию xml ' 'в первой строке, удалив это в моем случае, ошибка исчезнет. – albciff

ответ

1

Проблема в вашем случае состоит в том, что элемент определения отсутствует, что похоже на корень.

WSDL имеет специфическую структуру, для которой корневой элемент должен быть Определениях, под ним различные другие элементы присутствуют как типы, сообщения, PortType, переплет, услуги и т.д.

структура, как ниже:

<definitions> 
    <types> data type definitions........ </types> 
    <message> definition of the data being communicated.... </message> 
    <portType> set of operations...... </portType> 
    <binding> protocol and data format specification.... </binding> 
</definitions> 

Для значения каждого элемента WSDL смотрите в ссылку: https://www.w3schools.com/xml/xml_wsdl.asp