2009-08-24 7 views
1

hinzu Wir migrieren von WebLogic Web-Services zu Spring-WS (1.5.X). Derzeit gibt es ein Problem:So fügen Sie ein benutzerdefiniertes SOAP-Header-Element zur generierten WSDL in Spring-WS

Wir müssen ein Context-Objekt (auf WLS wird es als SOAP-Header-Element übergeben) an andere Dienste, die noch auf dem WLS von der Spring-WS powered Service ausgeführt werden. Das Header-Element wird immer noch auf der Client-Seite formuliert und das neu erstellte WS (Spring-WS) sollte es einfach an andere Dienste weiterleiten.

kann ich mich vorstellen, wie das benutzerdefinierte Element übergeben werden würde: überschreibt die doWithMessage (WebServiceMessage Nachricht) Methode ...

Gibt es einen Weg, um die WSDL-Datei mit Hilfe von DefaultWsdl11Definition zu erzeugen, das benutzerdefinierten Header-Element enthält? Siehe Beispiel:

<wsdl:operation name="GetSomeInformation"> 
    <soap:operation 
     soapAction="http://www.dummyservice.com/InformationService/GetSomeInformation" /> 
    <wsdl:input> 
     <soap:body use="literal" /> 
     <soap:header message="ctx:ServiceContextMessage" part="serviceContext" use="literal" /> 
    </wsdl:input> 
    <wsdl:output> 
     <soap:body use="literal" /> 
    </wsdl:output> 
    <wsdl:fault name="Error"> 
     <soap:fault name="Error" use="literal" /> 
    </wsdl:fault> 
</wsdl:operation> 

Vielen Dank für Hilfe

Antwort

2

Wir liefen in ein ähnliches Problem auf meinem Projekt. Überprüfen Sie, ob SuffixBasedPortTypesProvider, SuffixBasedMessagesProvider und Soap11Provider erweitert wurden. Wir verwenden den InliningXsdSchemaTypesProvider, um das Schema zu importieren, das wir zum Erstellen der WSDL verwenden. Wenn Sie die WSDL-Generierung über den Debugger ausführen, können Sie feststellen, wie es funktioniert. Der Spring-Code ist einfach zu folgen und zu erweitern.

Verwandte Themen