【问题标题】:MULE Esb xml to Object transformerMULE Esb xml 到对象转换器
【发布时间】:2014-02-18 12:53:55
【问题描述】:

我正在尝试利用 xml 到 mule 中的对象转换器,同时将 xml 有效负载转换为 Java Bean(客户)。这是我的简单流程。我看到的异常如下

异常堆栈是: 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:76 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerException.html) -------------------------------------------------- ------------------------------ 根异常堆栈跟踪: com.thoughtworks.xstream.mapper.CannotResolveClassException:客户 在 com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56) 在 com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30) 在 com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55) + 3 个(设置调试级别日志记录或“-Dmule.verbose.exceptions=true”为所有内容)

流程

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd">
    <flow name="alternateFlow1" doc:name="alternateFlow1">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8999" doc:name="HTTP"/>
        <http:outbound-endpoint exchange-pattern="request-response" host="www.thomas-bayer.com" port="80" path="sqlrest/CUSTOMER/3/" method="GET" doc:name="HTTP"/>
        <mulexml:xml-to-object-transformer returnClass="com.abc.dto.CUSTOMER" doc:name="XML to Object"/>
        <logger level="INFO" doc:name="Logger"/>
    </flow>
</mule>

XML:

<CUSTOMER xmlns:xlink="w3.org/1999/xlink">
 ;
 <ID>4</ID>
 <FIRSTNAME>Sylvia</FIRSTNAME>
 <LASTNAME>Ringer</LASTNAME>
 <STREET>365 College Av.</STREET>
 <CITY>Dallas</CITY>
</CUSTOMER>

【问题讨论】:

  • 同时显示 XML 负载。
  • w3.org/1999/xlink"> 4SylviaRinger365 College Av .达拉斯
  • 请不要发表评论 :( 为您编辑了您的问题。
  • ; 在这个 XML 中很奇怪。

标签: mule esb


【解决方案1】:

您需要在mulexml:xml-to-object-transformer中添加别名:

<mulexml:alias name="CUSTOMER" class="com.abc.dto.CUSTOMER" />

此外,没有理由将类名全部大写,因此请重命名您的类并为其命名:

<mulexml:alias name="CUSTOMER" class="com.abc.dto.Customer" />

【讨论】:

  • 新异常找不到将“SimpleDataType{type=org.hhmi.dto.Customer, mimeType='application/xml'}”转换为“SimpleDataType{type=org.mule.api”的转换器.transport.OutputHandler, mimeType='/'}".
  • 我猜这是因为http:inbound-endpointrequest-response 而Mule 不知道如何将org.hhmi.dto.Customer 对象转换为有效的HTTP 响应。你打算向调用者返回什么?
  • 谢谢大卫,我只是在为即将到来的项目做实验。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多