2017-12-20 20 views
0

ウェブサービスコンシューマは、変圧器のメッセージを使用しているときに戻り値です。 xsltコンポーネントを使用しているときは機能しません。 nullを返します。ウェブサービスコンシューマコンポーネントのミュール

ここは私の流れです。

文字列 - > xslt-> webserviceコンシューマへのHttp->バイト配列。

誰でも助けてくれますか?ここ

は私の入力は

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

はXSLTコンポーネントここ

を使用して石鹸にこのXMLを変換しています私は、Webサービスの消費者のコンポーネントにこの石けんファイルを送信するときに私の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> 

です、nullを取得しました

+0

があなたの入力とXSLコードを追加してください - あなたを助けるために容易になります。 –

+0

私は入力ファイルとxslファイルを追加しました。手伝って頂けますか? –

答えて

0

Webサービスプロバイダがreturであることを意味しますか異なる値を設定していますか?

どちらの場合でも送信されている入力を確認できますか? XMLに対するDataweaveの操作は、jsonやjavaオブジェクトとは異なります。

ブラウザからWebサービスにアクセスし、正しい入力構造を見つけて、それを実現してください。

+0

nullを返します。 –

0

私はあなたのXSLとXMLを変換するとき、私は結果の下に持っている:あなたは、スキーマhttp://schemas.xmlsoap.org/soap/envelope/
と、この変換コードをチェックした場合

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

エラーの下にあります:現在のファイルの

検証をXMLスキーマを使用して:

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). 

このブロックのみを意味します<soap:header/>は大文字の場合は<soap:Header/>とし、XSLで変更してもう一度やり直してください。問題がまだある場合

は、以下をチェックしてみてください:

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

mule - web service consumer (soap) always returns null

+0

ありがとうございます。私の問題は、xmlをsoapに変換することではありません。しかし、Webサービスの消費者と。あなたがSOAPサービスをWebサービスコンシューマーに渡すときにヌル値を返しています –

+0

@ KarthickRicky正しいで石鹸に変換してから、あなたの石鹸をWebサービス消費者に渡そうとしましたか? –

+0

ええ。私は試した。それは動作していません。 soapファイルをWebサービスコンシューマに送信したときにのみnullを返します。 –

関連する問題