0
我期望一個<test:component />
等同於問題與FunctionalTestComponent(騾子3.2.1)
<component>
<spring-object bean="FTC" />
<component>
在FTC豆使用FunctionalTestComponent
類。也就是說,我期望下面的兩個配置通過下面進一步顯示的功能測試。
配置與<test:component />
<mule ...>
<vm:endpoint name="EntryPoint.Name" path="EntryPoint.Path" />
<simple-service name="service" endpoint-ref="EntryPoint.Name" >
<test:component />
</simple-service>
</mule>
配置有彈簧豆使用FunctionalTestComponent
<mule ...>
<vm:endpoint name="EntryPoint.Name" path="EntryPoint.Path" />
<spring:bean id="FTC" class="org.mule.tck.functional.FunctionalTestComponent" />
<simple-service name="service" endpoint-ref="EntryPoint.Name" >
<component>
<spring-object bean="FTC" />
</component>
</simple-service>
</mule>
測試
@Test
public void aTest() throws Exception {
final MuleClient client = muleContext.getClient();
client.send("vm://EntryPoint.Path", "1", null);
assertEquals("1", getFunctionalTestComponent("service").getLastReceivedMessage());
}
<test:component />
與該配置通過測試。但是,與FTC豆的那個不一樣。事實上,與FTC豆的運行在日誌中顯示一個例外:
********************************************************************************
Message : Component that caused exception is: DefaultJavaComponent{service.commponent}. Message payload is of type: String
Code : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. null (java.lang.NullPointerException)
org.mule.tck.functional.FunctionalTestComponent:215 (null)
2. Component that caused exception is: DefaultJavaComponent{service.commponent}. Message payload is of type: String (org.mule.component.ComponentException)
org.mule.component.DefaultComponentLifecycleAdapter:359 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/component/ComponentException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.NullPointerException
at org.mule.tck.functional.FunctionalTestComponent.process(FunctionalTestComponent.java:215)
at org.mule.tck.functional.FunctionalTestComponent.onCall(FunctionalTestComponent.java:108)
at org.mule.model.resolvers.CallableEntryPointResolver.invoke(CallableEntryPointResolver.java:50)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
任何想法我可能做錯了什麼?我使用的騾子3.2.1
感謝
同理我想象* <單例的對象類=「org.mule.tck.functional.FunctionalTestComponent」 /> *在doc會失敗太所示:(一般來說,無論如何都最好使用test:component – 2012-04-19 16:15:52
@David:你說得對,我後來意識到我不需要爲我的目的設置一個單獨的bean。 – beluchin 2012-04-19 16:54:43