Как реестр доступа в WSO2 ESB
Вопрос
Как ссылаться на файлы WSDL из реестра при определении нового прокси-сервиса?Я использую WSO2 ESB.
localEntry key="my_wsdl" src="file:/wsdl/MyServiceSOAP.wsdl".
при условии, что я ранее использовал
"/wsdl/MyServiceSOAP.wsdl"а также
"wsdl/MyServiceSOAP.wsdl". не работает.Я следую за Документация но они не показываютHowto загрузить WSDLS в реестр.
Решение
Я думаю, что вы ссылаетесь на реестр здесь. Пространство реестра в каждом продукте содержит три основных раздела.
- .
- local
- Конфигурация
- Управление
Реестр конфигурации содержит конкретную конфигурацию продукта, которая может быть передана по нескольким экземплярам того же продукта (например, кластер узлов 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.