2013-04-25 4 views
1

우리는 우리의 웹 서비스와 고객 사이에 wso2esb 서버를 설치하는 중입니다. 수입에 문제가 있고 wsdl 파일에 포함되어 있습니다.XSD 파일에서 가져 오기

마이그레이션을 간단하게하기 위해 우리가 가지고있는 모든 wsdl 및 xsd 파일을 esb 서버의 디렉토리 (그러나 wso2esb 소프트웨어 외부)에 복사 할 것입니다. esb에서 서비스를 생성 할 때, 이제 '소스 WSDL 지정'을 사용하여 wsdl-files를 참조합니다.

이것은 wsdl을 보여 주지만 우리가 생성 한 것은 아닙니다. 그래서 우리는 'useOriginalwsdl = true', 'modifyUserWSDLPortAddress = true', 'showAbsoluteSchemaURL = true'를 사용하고 있습니다. 이 코드 조각을 가지고 we'ver 우리의 WSDL 중 하나에서

:

<xs:schema targetNamespace="http://www.egem.nl/StUF/wsdl/zkn0201.wsdl"> 
<xs:import namespace="http://www.egem.nl/StUF/StUF0204" schemaLocation="HAEM_TEST?xsd=xsd/stuf0204.xsd"/> 
<xs:import namespace="http://www.egem.nl/StUF/sector/zkn/0201" schemaLocation="HAEM_TEST?xsd=xsd/zkn0201.msg.xsd"/> 
</xs:schema> 

그러나 때 설정 위의 매개 변수와

<xs:schema targetNamespace="http: //www.egem.nl/StUF/wsdl/zkn0201.wsdl"> 
<xs:import schemaLocation="xsd/stuf0204.xsd" namespace="http://www.egem.nl/StUF/StUF0204"/> 
<xs:import schemaLocation="xsd/zkn0201.msg.xsd" namespace="http://www.egem.nl/StUF/sector/zkn/0201"/> 
</xs:schema> 

,이 같은 서비스의 WSDL에 보여줍니다 "http : // ...../sevices/HAEM_TEST? xsd = xsd/zkn0201.msg.xsd"로 wsdl을 쿼리하면 xsd의 내용을 반환하지 않습니다. 자신에 비해 상대 경로에 의해 주어진

$ ls -lR /some/path/to/my/resource 
.: 
    drwx------. 2 wnproesb01 wnproesb01 4096 Apr 17 23:15 xsd 
    -rwx------. 1 wnproesb01 wnproesb01 9498 Apr 16 18:31 zkn0201.wsdl 

./xsd: 
    -rwx------. 1 wnproesb01 wnproesb01 13885 Apr 16 18:31 stuf0204.xsd 
    -rwx------. 1 wnproesb01 wnproesb01 63982 Apr 16 18:31 zkn0201.msg.xsd 

이 XSD - 파일 자체를 수입하거나 포함 할 수 있습니다 : 디스크에

다음 XSD 년대는 서비스가 사용하는 실제 WSDL에 presenton 디스크 상대적 비록 .

큰 질문 :이 wsdl을 wso2esb에서 제시 한대로 유효한 wsdl로 만들려면 무엇을해야합니까? 포함/수입 된 모든 xsd를 포함합니다.

답변