Mule 3.3 может автоматически преобразовывать XML-строку в объект с помощью JAXB при условии, что:
1. сначала вы регистрируете свои аннотированные классы jaxb в Spring. 2. есть компонент, который требует в качестве ввода такой тип
Итак, мне удалось сделать трансформацию, но мне пришлось создать «DumbTransformer», который ничего не делает. У него есть метод, который возвращает тот же объект, который он получает. Мне это нужно, чтобы инициировать преобразование XML в объект, чтобы я мог продолжить обработку сообщения.
Пример потока:
<spring:beans>
<spring:bean id="dumbTransformer" class="foo.bar.DumbTransformer"/>
</spring:beans>
<flow name="main" doc:name="main">
<vm:inbound-endpoint path="in" doc:name="VM" />
<component doc:name="Java">
<spring-object bean="dumbTransformer"/>
</component>
<splitter expression="#[payload.items]" doc:name="Split Items"/>
<logger message="#[payload]" level="INFO" doc:name="Log Item"/>
<vm:outbound-endpoint path="out" doc:name="VM" />
</flow>
DumbTransformer.java
package foo.bar;
@ContainsTransformerMethods
public class InvoiceUnmarshaller extends AbstractTransformer {
@Transformer
public MyJaxbAnnotatedClass foo(@Payload MyJaxbAnnotatedClass i) {
return i;
}
}
Есть ли способ сделать это без создания таких DumbTransformers?
Спасибо.