2012-03-06 22 views
1

私のアプリケーションクライアントはSOAPリクエストをMule ESBに送信するので、SOAPtoPOJOTransformerをESBに入れてコンポーネントクラスにPOJOオブジェクトを渡します。SOAPtoPOJotransformer in mule esb

このトランスのサンプルまたはコードスニペットを教えてください。

おかげで、 ナラヤナン

+0

POJOは素晴らしいですね! – Mehrdad

答えて

1

は、私はちょうど私の流れにそれらを参照するように使用するために必要なすべての変圧器を宣言するXMLを持っています。下記参照。 (あなたがISO-8859-1を使用する必要がいけない)

<?xml version="1.0" encoding="UTF-8"?> 
<mule 
xmlns="http://www.mulesoft.org/schema/mule/core" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:mxml="http://www.mulesoft.org/schema/mule/xml" 
xmlns:vm="http://www.mulesoft.org/schema/mule/vm" 
xmlns:spring="http://www.springframework.org/schema/beans" 
xsi:schemaLocation=" 
    http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.2/mule.xsd 
    http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/3.2/mule-xml.xsd 
    http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/3.1/mule-vm.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

<mxml:jaxb-context 
    name="jaxb-context" 
    packageNames="my.package.v1:my.package.v2:soap.package" /> 

<mxml:jaxb-xml-to-object-transformer 
    name="xml-to-object" 
    encoding="ISO-8859-1" 
    jaxbContext-ref="jaxb-context" 
    ignoreBadInput="true" /> 

<mxml:jaxb-object-to-xml-transformer 
    name="object-to-xml" 
    encoding="ISO-8859-1" 
    jaxbContext-ref="jaxb-context" 
    returnClass="java.lang.String" 
    ignoreBadInput="true" /> 

<byte-array-to-string-transformer 
    name="byte-array-to-string" 
    encoding="ISO-8859-1" 
    returnClass="java.lang.String" /> 

<string-to-byte-array-transformer 
    name="string-to-byte-array" 
    encoding="ISO-8859-1" 
    returnClass="byte[]" /> 

<custom-transformer 
    name="xml-to-xml-stream-reader" 
    class="org.mule.module.xml.transformer.XmlToXMLStreamReader" /> 

<object-to-string-transformer name="object-to-string" /> 

<flow name="ByteArrayToObjectXml"> 

    <vm:inbound-endpoint 
     path="myapp/conversor/byte-array-to-object-xml" 
     exchange-pattern="request-response" /> 

    <transformer ref="byte-array-to-string" /> 
    <transformer ref="xml-to-object" /> 
</flow> 

0

はい、あなたは、javaにXMLを変換するためのデータ織り変換を記述する必要があります。私は例の流れを提供しています、あなたは同様の変換コードを書く必要があります。

<flow name="getDeltaFlightsFlow"> 
     <http:listener config-ref="HTTP_Listener_Configuration" path="/delta" allowedMethods="GET" doc:name="HTTP"/> 

     <dw:transform-message doc:name="Transform Message"> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/xml 
%namespace ns0 http://soap.training.mulesoft.com/ 
--- 
{ 
    ns0#findFlight: { 
     destination: flowVars.code as :string 
    } 
}]]></dw:set-payload> 
     </dw:transform-message> 
     <ws:consumer config-ref="Delta_Service_Consumer" operation="findFlight" doc:name="Delta SOAP Reqst"/> 
     <dw:transform-message metadata:id="fdbaa716-f263-4812-a153-6509b7407ee8" doc:name="Transform Message"> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/java 
%namespace ns0 http://soap.training.mulesoft.com/ 
--- 
{ 
    flights: payload.ns0#findFlightResponse.*return map ((return , indexOfReturn) -> { 
     airlineName: return.airlineName, 
     price: return.price, 
     departureDate: return.departureDate, 
     planeType: return.planeType, 
     origin: return.origin, 
     code: return.code, 
     emptySeats: return.emptySeats, 
     destination: return.destination 
    }) 
}]]></dw:set-payload> 
     </dw:transform-message> 
     <logger level="INFO" doc:name="Logger"/> 

    </flow> 
関連する問題