Вопрос

Как ссылаться на файлы WSDL из реестра при определении нового прокси-сервиса?Я использую WSO2 ESB.

Q1: Могу ли я использовать элемент localentry , чтобы определить WSDL в моем прокси-сервисе?Например:

localEntry key="my_wsdl" src="file:/wsdl/MyServiceSOAP.wsdl"
.

при условии, что я ранее использовал Console Console > Добавить коллекцию > Создать "wsdl" и Добавить ресурс > myservicesoap.wsdl. У меня проблема с ценностью «SRC», оба

"/wsdl/MyServiceSOAP.wsdl" 
а также
"wsdl/MyServiceSOAP.wsdl" 
. не работает.Я следую за Документация но они не показываютHowto загрузить WSDLS в реестр.

Q2: Что если myservicesoap.wsdl импортирует myservice.wsdl?Мне нужно использовать Добавить ресурс для myservice.wsdl, но мне нужно сделать что-нибудь еще, чтобы сделать компиляцию прокси?

Это было полезно?

Решение

Я думаю, что вы ссылаетесь на реестр здесь. Пространство реестра в каждом продукте содержит три основных раздела.

    .
  • local
  • Конфигурация
  • Управление

пространство реестра в ESB Реестр конфигурации содержит конкретную конфигурацию продукта, которая может быть передана по нескольким экземплярам того же продукта (например, кластер узлов ESB). Таким образом, вы можете создать коллекцию WSDL внутри реестра конфигурации и обратитесь к нему ..

"conf:/wsdl/MyServiceSOAP.wsdl"
.

, загрузив ресурсы в реестр, вы можете легко выбрать их при создании прокси-сервиса. Введите описание изображения здесь

Я думаю, что вы можете обратиться к ресурсам как «Файл: /wsdl/myservicesoap.wsdl» только тогда, когда они находятся внутри каталога с именем «WSDL» в локальной файловой системе. BTW, о сообщениях об ошибках .. Если вы посмотрите на журналы ESB Server, вы увидите следующую ошибку, когда вы пытаетесь обновить прокси, ссылаясь на несуществующий файл.

Caused by: java.io.FileNotFoundException: ./wsdl/MyServiceSOAP.wsdl (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.io.FileInputStream.<init>(FileInputStream.java:79)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
    at org.apache.synapse.config.SynapseConfigUtils.getObject(SynapseConfigUtils.java:197)
    ... 46 more
.

Другие советы

Я нашел простое решение для него из блога: В моем сценарии у меня был WSDL, который импортировал еще один WSDL, который импортировал XSD.Фактические структуры были во втором WSDL.

Строка импорта в оригинальном WSDL:

    <wsdl:import namespace="http://www.somedomain.com/interface/v1_0" location="service_interface_1_0.wsdl"/>
.

Строка импорта во втором WSDL:

    <xsd:import namespace="http://www.somedomain.com/data/v1_0" schemaLocation="data_types_1_0.xsd"/>
.

Требуется XML на прокси:

    <publishWSDL key="file_required_service_1_0.wsdl">
  <resource location="service_interface_1_0.wsdl"
            key="file_service_interface_1_0.wsdl"/>
  <resource location="data_types_1_0.xsd"
            key="file_data_types_1_0.xsd"/>
.

Если у меня есть локальные записи для «file_required_service_1_0.wsdl» и т. д. названные локальные записи, которые содержат исходные файлы WSDL и XSD.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top