2014-10-28 3 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 

заголовки Content-Type приложения/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; 
} 

} 

Класс Test1 (компонент)

public class Test1 { 

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

} 
+0

не должны класс компонент будет '' Abc'instead из Test1'? – khateeb

+0

Когда я попробовал пример, я получил следующее сообщение об ошибке: стека 'Исключение составляет: 1. Abc (com.thoughtworks.xstream.mapper.CannotResolveClassException) com.thoughtworks.xstream.mapper.DefaultMapper: 56 (нуль) 2. Abc (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

+0

no Test1 - это компонент, который может обрабатывать запрос. Обновление ответа с помощью Test1. –