Ich erstelle einen Java-Dienst, der ein eingehendes XML verwendet, einige Geschäftslogik auf einige Daten aus dem XML anwendet und einen SOAP-Service mit diesen und ursprünglichen Daten aus dem XML aufruft.XML to SOAP-Dienst
Ich habe ein Beispiel der eingehenden Anfrage XML und WSDL für den Outbound-SOAP-Service.
Mein Plan ist:
- XSD Generieren von der Probe eingehenden XML XMLSpy.
- Generieren Sie Java-Klassen von der XSD mit Maven-Jaxb2-Plugin.
- Unmarshal der eingehenden XML zu JAXB-Objekt.
- Extrahieren Sie Daten aus dem JAXB-Objekt, wenden Sie Geschäftslogik auf einige von ihnen an.
- Generieren Sie den SOAP-Client mithilfe des SOAP-WSDL-Dokuments mit dem cxf-codegen-plugin.
- Rufen Sie den SOAP-Client mit den Daten auf.
Hier habe ich über die Verwendung von XSLT lese: xml-to-soap-transformation
Bin ich richtig, diese Aufgabe anbietet? Sollte XSLT Teil meiner Implementierung sein?
Vielen Dank!
Update:
Der Outbound-SOAP-Dienst ist 'Dokumentstil', enthält die WSDL XSD-Schema.
Das Projekt verwendet Spring-Framework.
Der generierte Code sieht wie folgt aus etwas:
@WebServiceClient(name = "OrderService",
wsdlLocation = "file:/C:/......./src/main/resources/wsdl/OrderService.wsdl",
targetNamespace = "http://xmlns.some_name_space")
public class OrderService extends Service {
@WebService(targetNamespace = "http://xmlns.some_name_space", name = "OrderPortType")
@XmlSeeAlso({org.....ObjectFactory.class})
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface OrderPortType {
generiert Client:
QName SERVICE_NAME = new QName("http://xmlns......", "OrderService");
URL wsdlURL = OrderService.WSDL_LOCATION;
OrderService ss = new OrderService(wsdlURL, SERVICE_NAME);
OrderPortType port = ss.getOrder();
CancelOrderType cancelOrderMessage = null;
CancelAcknowledgeOrderType cancelOrderReturn = port.cancelOrder(cancelOrderMessage);
ProcessOrderType processOrderMessage = null;
AcknowledgeOrderType processOrderReturn = port.processOrder(processOrderMessage);
Ich habe den Link in meinem ursprünglichen Beitrag behoben. –
Wir verwenden den Dokumentstil. Die WSDL enthält ein XSD-Schema. –
Was passiert also, wenn Sie das Maven-Plugin Code generieren lassen? Erhalten Sie eine API im RPC-Stil oder nur ein get-/setDocument? – wallenborn