WSO2 ESB의 레지스트리에 HOWTO 액세스
문제
HOWTO는 새로운 프록시 서비스를 정의 할 때 레지스트리에서 WSDL 파일을 참조합니까?나는 WSO2 ESB를 사용하고 있습니다.
Q1 : localErentry 요소를 사용하여 프록시 서비스에서 WSDL을 정의 할 수 있습니까?예 :
localEntry key="my_wsdl" src="file:/wsdl/MyServiceSOAP.wsdl".
이전에 관리 콘솔 > 콜렉션 > > 자원 > myservicesoap.wsdl을 추가했습니다. 나는 "src"가치에 문제가있다.
"/wsdl/MyServiceSOAP.wsdl". 과
"wsdl/MyServiceSOAP.wsdl". 작동하지 않습니다.나는 설명서 그러나 그들이 표시하지 않습니다.wsdls를 레지스트리에 업로드하는 방법.
Q2 : myserviceoap.wsdl이 myservice.wsdl을 가져 오는 경우 어떻게 될까요?myservice.wsdl에 대해 자원 을 사용해야 만합니다. 그러나 프록시를 컴파일하는 데 다른 작업을 수행해야합니까?
해결책
여기에서 레지스트리를 언급하고 있다고 생각합니다. 각 제품의 레지스트리 공간에는 세 개의 주요 파티션이 들어 있습니다.
- 로컬
- 구성
- 거버넌스
구성 레지스트리에는 동일한 제품의 여러 인스턴스 (예 : ESB 노드의 클러스터)에서 공유 할 수있는 제품 별 구성이 포함되어 있습니다. 그래서 구성 레지스트리 안에 WSDL 컬렉션을 만들고 다음과 같이 참조 할 수 있습니다.
"conf:/wsdl/MyServiceSOAP.wsdl"
.
리소스를 레지스트리에 업로드하여 프록시 서비스를 만들 때 쉽게 선택할 수 있습니다.
로컬 파일 시스템에서 'wsdl'이라는 디렉토리 안에있는 경우에만 "file : /wsdl/myservicesoap.wsdl"으로 자원을 참조 할 수 있습니다. BTW, 오류 메시지 정보. ESB 서버 로그를 보면 프록시가 아닌 파일을 참조하여 프록시를 업데이트하려고하면 다음 오류가 표시됩니다.
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
. 다른 팁
블로그에서 간단한 해결책을 찾았습니다. 내 시나리오에서 XSD를 가져온 다른 WSDL을 가져온 WSDL이있었습니다.실제 구조는 두 번째 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 파일이 포함 된 로컬 항목을 포함합니다.