#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…