2016-12-18 4 views
0

Ich entwickle meine erste Spring Boot Anwendung enthält sowohl Soap und Rest webservice. Ich muss Request in URL als Parameter übergeben. Ich kann eine Anfrage in der URL für den Rest-Service übergeben. Ist es möglich, eine Anfrage in URL für SOAPwebservice zu senden?SOAP und Rest Webservice mit Spring Boot

+0

Nein. Da 'SOAP' Anfragen grundsätzlich' POST' Anfragen sind, können Sie keine Anfragedaten als Teil einer URL senden. – Arpit

+0

@arpit So können wir Soap-Anfrage nur im XML-Format über SOAP UI-Tool senden, oder? – user6543599

+0

Ja !, Seife erlauben, nur XML zu senden – Arpit

Antwort

1

Ok ich bin mir nicht sicher, was Ihre Absichten sind, aber über SOAP.

---------------      ---------------- 
|    | someMethodInvoke |    | 
| Your API | -------------------->| WEB Service | 
|    |<-------------------- |    | 
--------------- someResult  ---------------- 

nun eine Kommunikation mit einem WS besuchen Sie zunächst das Schema dieser API oder die .WSDL haben müssen, aus dem Sie Objekte, mit denen generieren können Sie die Anrufe, die Sie benötigen machen.

Ich persönlich verwende JAXB für die Generierung .java Klassen aus dem Schema.

Nach dem Anruf selbst org.springframework.ws.client.core.WebServiceTemplate ist die Sache, die die Arbeit erledigt. Sie können marshalSendAndReceive verwenden.

Zum Beispiel:

public class SomeService extends WebServiceGatewaySupport { 
    ObjectFactory oFactory = new ObjectFactory(); 

    public ExpectedResultObject someMethodInvoke(RequestObjectGeneratedFromSchema request){ 
      JAXBElement<ExpectedResultObject> response = (JAXBElement<ExpectedResultObject>) getWebServiceTemplate() 
       .marshalSendAndReceive("http://yourURL.com", oFactory.createreRequestObjectGeneratedFromSchemaInputMessage(request)); 
      return response.getValue(); 
    } 
} 

Erstens erweitern die WebServiceGatewaySupport so können Sie die getWebServiceTemplate() aufrufen, die nur genau zurückgeben, was Sie brauchen: org.springframework.ws.client.core.WebServiceTemplate. Hier ist ein Beispiel, wie Sie die WebServiceTemplate

verwenden können Natürlich gibt es eine Menge von Faktoren wie Sicherheit, Konnektivität und so weiter, die vielleicht eingestellt werden sollte. Aber das hängt vom WS ab. Aber im Grunde ist das alles:

  1. generieren .java Klassen von WSDL (Schema)
  2. Fill erzeugte Objekt mit Informationen
  3. Verwenden einige WebServiceTemplate für den Aufruf des Endpunktes

Hoffnung ich dir gegeben habe einige Richtungen.

Verwandte Themen