2017-12-20 3 views
0

Web-Service-Consumer gibt Wert zurück, wenn Transformer-Nachricht verwendet wird. aber es funktioniert nicht, wenn ich xslt-Komponente verwende. es gibt null zurück.Web Service Consumer-Komponente in Mule

Hier ist mein Fluss.

Http-> Byte-Array zu string-> xslt-> Webservice Consumer.

kann mir jemand helfen?

hier ist mein Eingang

<?xml version="1.0" encoding="UTF-8"?> 

<PayLoad> 
<RoutingHeader> 
    <SourceID>1234</SourceID> 
    <SourceName>ISGN</SourceName> 
    <SourceRefNum>167309</SourceRefNum> 
    <SourceRoutingRef /> 
    <DestinationID>999</DestinationID> 
    <DestinationRefNum /> 
    <DestinationRoutingRef /> 
    <TransDate>2017-04-17T09:04:24.702000-04:00</TransDate> 
    </RoutingHeader> 
<PayLoad> 

Uhr dieses xml in Seife Umwandlung Xslt Komponente

hier ist mein xsl xode

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="URI_SOAP_WS"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 
<xsl:template match="/"> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:header/> 
    <soap:Body> 
     <xsl:apply-templates/> 
    </soap:Body> 
</soap:Envelope> 
</xsl:template> 
<xsl:template match="*"> 
<xsl:element name="s:{local-name()}" namespace="http://spring.io/guides/s- 
    producing-web-service"> 
    <xsl:apply-templates select="node()|@*" /> 
</xsl:element> 
</xsl:template> 
</xsl:stylesheet> 

, wenn ich diese Seife Datei senden Verbraucherkomponente WebService null

+0

Sie bitte Ihre Eingabe und xsl Code hinzufügen - es wird einfacher sein, Ihnen zu helfen. –

+0

Ich habe meine Eingabedatei und Xsl-Datei hinzugefügt. kannst du mir helfen? –

Antwort

0

Meinst du, Web-Service-Provider ist zurück ning anderen Wert?

Können Sie in beiden Fällen die gesendete Eingabe überprüfen. Die Operation von Dataweave für XML unterscheidet sich im Vergleich zu json- oder java-Objekt.

Versuchen Sie, über den Browser auf den Webservice zuzugreifen und die richtige Eingabestruktur zu finden und diese im Fluss zu erreichen.

+0

Es gibt null zurück. –

0

Wenn ich XML mit XSL transformiert, habe ich unten Ergebnis:

<?xml version="1.0" encoding="UTF-8"?> 
<soap:Envelope xmlns:s="URI_SOAP_WS" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:header/> 
<soap:Body> 
<s:PayLoad xmlns:s="http://spring.io/guides/s-producing-web-service"> 
<s:RoutingHeader> 
<s:SourceID>1234</s:SourceID> 
<s:SourceName>ISGN</s:SourceName> 
<s:SourceRefNum>167309</s:SourceRefNum> 
<s:SourceRoutingRef/> 
<s:DestinationID>999</s:DestinationID> 
<s:DestinationRefNum/> 
<s:DestinationRoutingRef/> 
<s:TransDate>2017-04-17T09:04:24.702000-04:00</s:TransDate> 
</s:RoutingHeader> 
</s:PayLoad> 
</soap:Body> 
</soap:Envelope> 

Wenn Sie diese transformierten Code mit Schema überprüfen http://schemas.xmlsoap.org/soap/envelope/
Sie unter Fehler haben:

Validierung der aktuellen Datei unter Verwendung des XML-Schemas:

ERROR: Element '{http://schemas.xmlsoap.org/soap/envelope/}header': This element is not expected. Expected is one of ({http://schemas.xmlsoap.org/soap/envelope/}Header, {http://schemas.xmlsoap.org/soap/envelope/}Body). 

Es bedeutet nur diesen Block <soap:header/> sollte von Großbuchstaben wie <soap:Header/> sein, ändern Sie es in XSL und versuchen Sie es erneut.

Wenn es immer noch Probleme versuchen unter Kontrolle:

How to use Web-Service-Consumer connector in Mule Community Edition

mule - web service consumer (soap) always returns null

+0

Danke. Mein Problem besteht nicht darin, XML in Seife zu konvertieren. aber mit Web Service Consumer. Es gibt null Wert zurück, wenn ich die Soap-Datei an Web-Service-Consumer übergebe –

+0

@KarthickRicky Haben Sie versucht, in Seife mit dem richtigen zu transformieren und dann Ihre Seife an Web-Service-Verbraucher? –

+0

ja. Ich habe es versucht. aber es funktioniert nicht. Es gibt nur null zurück, wenn ich die Soap-Datei an den Web-Service-Consumer sende. –