0

プロキシ サービスのバージョンを 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>

ただし、有効な WSDL (リソース WSDL から Service Bus によって作成されたもの) を次の URL で取得した場合: http://myserver:port/sbresource?PROXY/MyService/MyService

要素のドキュメントは上書きされます:

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

要素のバージョンは完全に欠落していますが、コンテンツはまだ存在しています。

なぜこれが起こっているのか、また回避策があれば教えてください。パーサーがサービスのバージョンを取得できるように、要素「バージョン」を保持する必要があります。

私の目的は、サービスの利用者にとって使いやすいソリューションを実現することです。つまり、単一の WSDL を情報のソースとして使用し、WSDL をできるだけ単純にして XPath で簡単に解析できるようにすることです。

4

1 に答える 1

1

OSB は効果的な WSDL を生成する際に近道をとっており、ドキュメンテーション要素にあるものは何でも取得されると思いますdata()

別の方法として、有効な WSDL の基になっている設計時の WSDL にアクセスすると役に立ちますか?

例えばhttp://host:port/sbresource?WSDL/project_path/wsdl_name

于 2016-09-06T14:35:53.020 に答える