我已經編寫了單元測試用例來在我的mule流程中單獨測試消息處理器。單元測試不適用於XSLT轉換器
但單元測試失敗,錯誤
org.mule.api.transformer.TransformerMessagingException: Property "xsl-file or xsl-text" not set.
One or more of them must be set (org.mule.api.lifecycle.InitialisationException).
Message payload is of type: String
(org.mule.api.transformer.TransformerMessagingException). Message payload is of type: String
其中一個的變壓器是一個XSLT如下所示。
<mule-xml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="C:\EWS\myproj\src\main\resources\xslt\DataAdder.xsl"
name="AdderXSLT" >
</mule-xml:xslt-transformer>
單元測試方法如下所示。
MessageProcessor subFlow = muleContext.getRegistry().lookupObject("AdderXSLT");
MuleEvent result = subFlow.process(getTestEvent(getFileAsString("SamplePayloads/input.xml")));
System.out.println("The output from Event is " + result.getMessageAsString());
System.out.println("The converted XML is " + result.getMessage().getPayloadAsString());
assertNotNull(result);
assertNull(result.getMessage().getExceptionPayload());
assertFalse(result.getMessage().getPayload() instanceof NullPayload);
請幫我理解這裏發生了什麼事。
它工作。謝謝瑞恩。但仍然不明白爲什麼messageprocessor.process方式不起作用。 – user1760178 2013-02-27 20:47:05
我相信這是因爲當你將它作爲流的一部分調用時,你正在MessageProcessorChain中執行它,它會在適當的地方初始化每個消息處理器。直接引用MessageProcessor的地方不會初始化它。我已經更新了包含更多信息的答案。 – 2013-02-27 21:15:50