2014-04-09 5 views
1

OSB에서 하나의 웹 서비스를 가상화해야하지만 최종 wsdl은 비즈니스 서비스와 동일합니다 (asxm이고 모든 것이 하나의 파일에만 있습니다). WSDL을 수출하는 것은 쉽게 구분할 수 표기법을 한 후하지만, 아래의 예를 참조하십시오OSB에서 내 보낸 후 프록시 서버의 WL5G3N0 표기

예상하고

<wsdl:output> 
     <soap:body use="literal" /> 
     <soap:header message="tns:GetPPDeluxeSubscriberInformationVersionInfoHeader" part="VersionInfoHeader" use="literal" /> 
     </wsdl:output> 

내가 얻는 하나의 원본 :

<WL5G3N0:output> 
     <WL5G3N2:header message="WL5G3N1:GetPPDeluxeSubscriberInformationVersionInfoHeader" part="VersionInfoHeader" use="literal"/> 
     <WL5G3N2:body use="literal"/> 
     </WL5G3N0:output> 

내가 생을 받고 있어요 비누, wsdl 또는 tns 대신 WL5G3N0 또는 WL5GN1 표기법을 사용하십시오.

아무도 어떻게이 문제를 해결할 수 있습니까?

고맙습니다.

답변

2

동작에 차이가 있습니까? namespcaes는 귀하의 예제에서 변경되는 유일한 것들이며, 서비스는 물론 모든 클라이언트에 의해 변경되거나 호출 될 수 있습니다.

저는 클라이언트이고 WSDL 스키마의 구성 요소에 회사 이름을 사용하는 것을 좋아합니다. 언제 까지나 내 xmlns에서의 "http://schemas.xmlsoap.org/wsdl/"스키마 맵, 서버가 읽하고 적절하게 해석 할 것을 선언과 같이

<wsdl:definitions targetNamespace="http://my-awesome-company.com/SomeWebService" xmlns:whateverYouWantHere="http://schemas.xmlsoap.org/wsdl/" ... 

난과 같이 WSDL 유형에 대한 스키마에 태그를 지정할 수 있습니다

<whateverYouWantHere:message>...</ 
<whateverYouWantHere:portType>.... 

기타 등

OSB는 프록시를 제공 할 때 프록시를 제공합니다. 프록시는 서비스뿐 아니라 수십만 개의 프록시를위한 프록시이기도합니다. 어떤 xmlns 정의 message 유형의 매핑 또는 또는 output 유형의 매핑과 같이 자신의 유형 중 하나로 매핑 된 정의 된 웹 서비스를 작성하려는 경우 심각한 네임 스페이스 충돌이 발생할 수 있습니다.

+0

감사합니다. 클라이언트가 WS를 사용하려고 할 때 아무런 문제가 없습니다. 예전의 것과 동일한 것을 기대하기 때문에 – Alex

+0

이 맞습니다. 그것들은 [XML 네임 스페이스 지원] (http://www.w3.org/TR/2006/REC-xml-names11-20060816/#sec-intro)으로 요약 할 수 있는데, 대부분의 (모든?) 클라이언트는 그들이 XML과 관련된 어떤 것에 대해서 이야기하고 싶다면 다음을 따라야한다. –