Web服务使用者在使用变换器消息时返回值。但是在使用xslt组件时它无法正常工作。它返回null。
这是我的流程。
Http->字节数组到string-> xslt-> webservice consumer。
任何人都可以帮助我吗?
这是我的输入
<?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转换为soap
这是我的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>
当我将此soap文件发送到webservice使用者组件时,获取null
答案 0 :(得分:0)
您的意思是网络服务提供商返回不同的价值吗?
你能检查两种情况下发送的输入吗?与json或java对象相比,Dataweave对XML的操作是不同的。
尝试通过浏览器访问Web服务并找到正确的输入结构并在流程中实现。
答案 1 :(得分:0)
当我使用XSL转换XML时,我得到以下结果:
<?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>
当您使用架构http://schemas.xmlsoap.org/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