2014-10-28 14 views

回答

2

您可以使用驅動程序類如Xpp3driver

例如,

流量會看起來像

<flow name="mulexmlvalFlow2" doc:name="mulexmlvalFlow2"> 
     <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP" path="XmlToObj"/> 
     <mulexml:xml-to-object-transformer doc:name="XML to Object" driverClass="com.thoughtworks.xstream.io.xml.Xpp3Driver"> 
      <mulexml:alias name="Abc" class="a.b.c.Abc" />   
     </mulexml:xml-to-object-transformer> 
     <component class="Test1" doc:name="Java"/> 
</flow> 

HTTP請求

http://localhost:8082/XmlToObj 

頭 內容類型的應用程序/ XML 後數據

<Abc><def>ggggg</def><ghi>hhhhh</ghi></Abc> 

ABC類

package a.b.c.Abc; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement(name = "Abc") 
public class Abc{ 
private String def; 
private String ghi; 

public Abc() { 
} 

public String getDef() { 
    return def; 
} 
public void setDef(String def) { 
    this.def = def; 
} 
public String getGhi() { 
    return ghi; 
} 
public void setGhi(String ghi) { 
    this.ghi = ghi; 
} 

} 

類測試1(組分)

public class Test1 { 

    public Object receive(Abc abc) throws Exception { 
     System.out.println(abc); 
     return "Success"; 
    } 

} 
+0

不應組件類是'Test1'的'Abc'instead? – khateeb 2014-10-30 09:17:04

+0

當我試圖的例子中,我得到了以下錯誤: '異常堆棧是: 1.美國廣播公司(com.thoughtworks.xstream.mapper.CannotResolveClassException) com.thoughtworks.xstream.mapper.DefaultMapper:56(空) 2.美國廣播公司(com.thoughtworks.xstream.mapper.CannotResolveClassException)(org.mule.api.transformer.TransformerException) org.mule.module.xml.transformer.XmlToObject:72(http://www.mulesoft.org/ docs/site/current3/apidocs/org/mule/api/transformer/TransformerException.html)' – khateeb 2014-10-30 09:17:42

+0

否Test1是一個可以處理請求的組件。用Test1更新答案。 – 2014-10-30 16:15:17