Oracle Service Bus 12c:在代理服务的有效WSDL中重写的元素/定义/文档

时间:2016-09-05 13:54:38

标签: wsdl oracle-service-bus

我们将一个代理服务的版本存储在WSDL文档中 - 在元素/ definitions / documentation中:

<?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>

我可以将服务部署到Service Bus 12c(12.2.1),服务正常。当我从Service Bus控制台(所谓的资源WSDL)显示WSDL时,WSDL就像我期望的那样,包括:

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

但是,如果我通过URL获得有效的WSDL(由资源WSDL的Service Bus创建): http://myserver:port/sbresource?PROXY/MyService/MyService

元素文档被覆盖:

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

元素版本完全缺失,但其内容仍然存在。

您能否告知为何会发生这种情况以及是否有可用的解决方法?我们需要保留元素&#34;版本&#34;,以便解析器能够检索服务版本。

我的目标是为服务使用者提供一个易于使用的解决方案,即使用单个WSDL作为信息源,并让XPDL轻松解析尽可能简单的WSDL。

1 个答案:

答案 0 :(得分:1)

我认为OSB在生成有效的WSDL时会采取捷径,而文档元素中的任何内容都会得到data()&#39; d。

作为替代方案,如果有效的WSDL基于accessed the design-time WSDL,它会有所帮助吗?

e.g。 http://host:port/sbresource?WSDL/project_path/wsdl_name