문제

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의 레지스트리 공간 구성 레지스트리에는 동일한 제품의 여러 인스턴스 (예 : 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 파일이 포함 된 로컬 항목을 포함합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top