В WSDL отсутствуют определения типов данных

#java #netbeans #soap #wsdl #jax-ws

#java #netbeans #soap #wsdl #jax-ws

Вопрос:

Я создаю веб-службу SOAP с помощью JAX WS. Одним из клиентов должен быть SAP. После разработки портов моей службы непосредственно на Java с помощью NetBeans я попытался подключиться к службе, используя XML-файл WSDL.

Моя проблема в том, что он четко определен, но в нем отсутствуют определения типов данных. Есть ли способ получить недостающие части для WSDL с помощью NetBeans?

Например, один из моих портов возвращает сложный тип данных, который является объектом Java с именем ReportResponse. Он содержит 2 строки, логическое и целочисленное поля. WSDL для этих частей выглядит следующим образом:

   <message name="reportResponse">
  <part name="parameters" element="tns:reportResponse" /> 
  </message>
  

Проблема в том, что «tns: reportResponse» больше не определен в моем файле WSDL.

Ответ №1:

Пожалуйста, обратитесь к файлу .xsd для вашего wsdl. Для элемента «reportResponse» должно быть сложное определение типа. Вы можете найти xsd .

Если вы загружаете wsdl в netbeans по URL, это означает, что jaxws не может найти ваш xsd-файл. Лучший способ — загрузить wsdl и xsd в вашу локальную папку и загрузить их в netbeans.

Комментарии:

1. Где я могу найти XSD? Я могу получить WSDL через HTTP get… Где это находится?

2. В вашем файле wsdl будет следующий тег <types> <xsd:schema> <xsd:import namespace=»…» schemaLocation=»Местоположение XSD»/> </xsd:schema> </types> .

3. Извините… Сегодня я был немного неаккуратен… Просто не видел объявление импорта!

4. опубликуйте свой wsdl. Я проверю и дам вам знать

Ответ №2:

Определяется ли он независимо в XSD? Если это так, вам следует использовать инструкцию import, ссылающуюся на ваш URL-адрес XSD…