2016-09-05 1 views
0

Wir speichern eine Version eines Proxy-Dienstes in einem WSDL-Dokument - in das Elemente/Definitionen/Dokumentation:Oracle Service Bus 12c: Element/Definitionen/Dokumentation neu geschrieben in effektiver WSDL eines Proxy-Dienstes

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

Ich kann einen Service für den Service Bus 12c (12.2.1) bereitstellen und der Service funktioniert gut. Wenn ich die WSDL aus der Service Bus Konsole (so genannte Ressource WSDL) angezeigt wird, ist die WSDL, wie ich erwarte und beinhaltet:

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

Wenn ich jedoch die effektive WSDL erhalten (erstellt von Service Bus von den Ressourcen WSDL) von der URL: http://myserver:port/sbresource?PROXY/MyService/MyService

Das Element Dokumentation ist überschrieben:

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

Das Element Version gänzlich fehlt, aber es ist Inhalt noch vorhanden ist.

Können Sie uns bitte mitteilen, warum dies geschieht und ob es einen Workaround gibt? Wir müssen das Element "version" beibehalten, damit die Parser die Serviceversion abrufen können.

Mein Ziel ist es, eine einfach zu bedienende Lösung für die Service-Consumer zu bekommen, d. H. Eine einzelne WSDL als Informationsquelle zu haben und die WSDL so einfach wie möglich zu machen, um von XPath leicht analysiert zu werden.

+0

Haben Sie versucht, einen Namespace zu '' hinzuzufügen? –

+0

Mögliches Duplikat von [Sollte Beispiel-XML in einer xsd-Dokumentationsnotiz maskiert sein?] (Http://stackoverflow.com/questions/1087293/should-example-xml-in-an-xsd-documentation-annotation-be-es-caped) –

+0

Ja, ich habe versucht, einen Namespace hinzuzufügen, aber das Element verschwand auch. Wenn ich ein Attribut hinzufüge, wird es auch entfernt. Nur der Textinhalt von Elementen bleibt innerhalb einer effektiven WSDL. – KarelHusa

Antwort

1

Ich denke, OSB nimmt Abkürzungen beim Erstellen effektive WSDLs, und was auch immer in der Dokumentation Element ist, wird nur data() 'd.

Als Alternative, würde es helfen, wenn Sie accessed the design-time WSDL, dass die effektive WSDL basiert auf?

z.B. http://host:port/sbresource?WSDL/project_path/wsdl_name

+0

Ressource WSDL enthält das Versionselement, aber keine anderen Informationen, die in einer effektiven WSDL (Endpunktadresse usw.) vorhanden sind. Die Verwendung von zwei WSDLs ist für die Konsumenten zu kompliziert, auch wenn man bedenkt, dass Ressourcen-/effektive WSDL ziemlich viel Oracle SB-spezifisch und für Leute, die "nur die WSDL brauchen, um die Arbeit zu erledigen", schwer zu verstehen ist. – KarelHusa

+0

Ich denke, der stabilste Ansatz wäre, die Version als 'festes' Element in die WSDL aufzunehmen oder als eine Variable, die von einer Art 'Status'-Operation zurückgegeben werden kann. –

Verwandte Themen