【问题标题】:How to use Mule's XML-to-Object transformer?如何使用 Mule 的 XML-to-Object 转换器?
【发布时间】:2014-12-23 19:37:59
【问题描述】:

应该执行哪些步骤?驱动程序类中应该存在什么?我应该如何创建将 XML 映射到的 POJO?如何配置变压器?

【问题讨论】:

    标签: java xml object mule xstream


    【解决方案1】:

    你可以使用像 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)
    • no Test1 是可以处理请求的组件。用 Test1 更新答案。
    • 我添加了 Test1 组件,但我仍然收到上面提到的错误。
    • 我的客户是:$.post("http://localhost:8082/XmlToObj", "&lt;Abc&gt;&lt;def&gt;ggggg&lt;/def&gt;&lt;ghi&gt;hhhhh&lt;/ghi&gt;&lt;/Abc&gt;", function(data,status){ alert("Data: " + data + "\nStatus: " + status); });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 2020-05-06
    • 2014-02-18
    • 1970-01-01
    • 2023-03-30
    • 2019-12-15
    相关资源
    最近更新 更多