Mule数据映射器中的JAXBelement映射

Mule数据映射器中的JAXBelement映射,mule,mule-studio,Mule,Mule Studio,我有一个从wsdl为一个Web服务生成的SOAP响应。以下是wsld定义中其中一个元素的外观: 在POJO中,它如下所示: @XmlElementRef(name = "Name", namespace = "http://schemas.datacontract.org/2004/07/Web.WebServices", type = JAXBElement.class, required = false) protected JAXBElement<String> name;

我有一个从wsdl为一个Web服务生成的SOAP响应。以下是wsld定义中其中一个元素的外观:

在POJO中,它如下所示:

@XmlElementRef(name = "Name", namespace = "http://schemas.datacontract.org/2004/07/Web.WebServices", type = JAXBElement.class, required = false)
protected JAXBElement<String> name;
@xmlementref(name=“name”,命名空间=”http://schemas.datacontract.org/2004/07/Web.WebServices,type=JAXBElement.class,必需=false)
保护名称;
尝试设置值时,在数据映射器中,我看到以下内容:

问题是不允许我拖放“name”值。
如何将左侧JSON中的name值映射到name值?

您必须将input.name拖到name/value的value字段中

脚本视图应类似于:


output.value=input.name

这不起作用,因为右侧POJO中的名称不是简单的字符串。它是受保护的名称;不要将其拖到指定位置。将其直接拖动到字符串“value”处。Datamapper负责剩下的部分。对不起,我想我没有解释清楚,但是你刚才说的正是我首先做的,它不起作用,因为POJO中的“name”是JAXBElement,而不是字符串。这是我得到的异常:由以下原因引起:org.jetel.exception.JetelException:javax.xml.bind.JAXBElement无法实例化。