xpath を使用して着信 SOAP リクエストから値を抽出しようとしていますが、何らかの理由で Mule がそれを xml として認識しません。ここのコードサンプルでは、情報をログに記録しようとしているだけで、Mule が Mule メッセージを文字列に変換しているだけではないかと思います。その結果、"[B4FEfea"; toString() の標準出力。そして、xpath式はその式で失敗します。
フロー自体は正常に動作し、SOAP-UI からリクエストを送信すると、ロガー コンポーネントなしでレスポンスが返されますが、レスポンス内に入力の一部を追加したいのですが、それは失敗します。
フローは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="CE-3.2.1" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd ">
<mulexml:namespace-manager includeConfigNamespaces="false">
<mulexml:namespace prefix="soapenv" uri="http://schemas.xmlsoap.org/soap/envelope/"/>
<mulexml:namespace prefix="mob" uri="http://mobistar.be/spellchecker/"/>
</mulexml:namespace-manager>
<flow name="spellcheckerFlow2" doc:name="spellcheckerFlow2" processingStrategy="synchronous">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="spellcheck" contentType="text/xml" doc:name="SOAP Spell check"/>
<logger message="#[xpath://mob:Text]" level="INFO" doc:name="Logger"/>
<mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="E:\Projects\Mobistar\Mule\spellchecker\src\main\resources\Request2GoogleAPI.xslt" doc:name="XSLT"/>
<response>
<mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="E:\Projects\Mobistar\Mule\spellchecker\src\main\resources\GoogleAPI2Response.xslt" doc:name="XSLT"/>
</response>
<http:outbound-endpoint exchange-pattern="request-response" host="www.google.com" port="80" path="tbproxy/spell?lang=en" contentType="text/xml" doc:name="Google API"/>
</flow>
</mule>
私が送信しているリクエストは次のとおりです。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spel="http://mobistar.be/spellchecker/">
<soapenv:Header/>
<soapenv:Body>
<spel:CheckSpellingRequest>
<spel:Text>Please test this blabla</spel:Text>
</spel:CheckSpellingRequest>
</soapenv:Body>
</soapenv:Envelope>
あなたが私を助けてくれることを願っています。