【发布时间】:2014-12-23 19:37:59
【问题描述】:
应该执行哪些步骤?驱动程序类中应该存在什么?我应该如何创建将 XML 映射到的 POJO?如何配置变压器?
【问题讨论】:
标签: java xml object mule xstream
应该执行哪些步骤?驱动程序类中应该存在什么?我应该如何创建将 XML 映射到的 POJO?如何配置变压器?
【问题讨论】:
标签: java xml object mule xstream
你可以使用像 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;
}
}
类Test1(组件)
public class Test1 {
public Object receive(Abc abc) throws Exception {
System.out.println(abc);
return "Success";
}
}
【讨论】:
Abc而不是Test1吗?
Exception stack is: 1. Abc (com.thoughtworks.xstream.mapper.CannotResolveClassException) com.thoughtworks.xstream.mapper.DefaultMapper:56 (null) 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)
$.post("http://localhost:8082/XmlToObj", "<Abc><def>ggggg</def><ghi>hhhhh</ghi></Abc>", function(data,status){ alert("Data: " + data + "\nStatus: " + status); });