2016-09-05 36 views
0

我們店裏的某個版本的WSDL文檔內的代理服務的有效WSDL改寫 - 到元/定義/文檔:Oracle服務總線12C:元/定義/文檔中的代理服務

<?xml version="1.0" encoding="UTF-8"?> 
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:tns="http://mynamespace.cz/1.0" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
name="MyService" targetNamespace="ttp://mynamespace.cz/1.0"> 
    <wsdl:documentation> 
    <version>2.0</version> 
    </wsdl:documentation> 

我可以將服務部署到服務總線12c(12.2.1),並且服務工作正常。當我顯示從服務總線控制檯(所謂的資源WSDL)的WSDL,該WSDL是如我所料,包括:

<wsdl:documentation> 
    <version>2.0</version> 
</wsdl:documentation> 

但是,如果我得到有效WSDL(通過服務總線從資源WSDL創建)由URL: http://myserver:port/sbresource?PROXY/MyService/MyService

元素文件被覆蓋:

<WL5G3N0:documentation> 
     2.0 
</WL5G3N0:documentation> 

要素版本是完全缺失的,但是它的內容仍然存在。

能否請您指教爲什麼發生這種情況,如果有任何解決方法可用?我們需要保留元素「版本」,以便解析器能夠檢索服務版本。

我的目標是獲得一種易於使用的溶液爲服務消費者,即具有單個WSDL作爲信息源和讓儘可能簡單的WSDL通過XPath的方式輕鬆解析。

+0

您是否嘗試過增加一個命名空間''? –

+0

的可能的複製[在一個xsd文檔註釋是否應示例XML轉義?](http://stackoverflow.com/questions/1087293/should-example-xml-in-an-xsd-documentation-annotation-be-escaped) –

+0

是的,我試着添加一個名稱空間,但元素也消失了。當我添加一個屬性時,它也被刪除。只有元素的文本內容纔會保留在有效的WSDL中。 – KarelHusa

回答

1

我認爲產生有效的WSDL時OSB採取捷徑,而且無論是在文檔元素只是得到data()「d。

作爲替代,將它幫助,如果你accessed the design-time WSDL,有效WSDL是基於?

例如http://host:port/sbresource?WSDL/project_path/wsdl_name

+0

資源WSDL包含版本元素,但不包含存在於有效WSDL(端點地址等)中的其他信息。使用兩個WSDL對於消費者來說太複雜了,同時考慮到資源/有效的WSDL是Oracle SB特有的東西,對於那些「只需要WSDL來完成工作」的人來說很難理解。 – KarelHusa

+0

我想最穩健的方法是將版本作爲WSDL中的'fixed'元素包含,或者作爲可以從某種'狀態'操作返回的變量。 –