0

<test:component />私はと同等であると期待します

<component>
    <spring-object bean="FTC" />
<component>

ここで、FTCBeanはFunctionalTestComponentクラスを使用します。つまり、以下の2つの構成は、以下に示す機能テストに合格することを期待しています。

設定<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を使用したSpringBeanによる構成

<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 />はテストに合格します。ただし、FTCBeanを使用するものはそうではありません。実際、FTC Beanを使用して実行すると、ログに例外が表示されます。


********************************************************************************
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)
********************************************************************************

私が間違っている可能性があることは何か考えていますか?Mule3.2.1を使用しています

ありがとう

4

1 に答える 1

0

私はそれを理解したと思います。Beanの定義に1つの属性がありませんinit-method= "initialise"。この詳細はドキュメントから欠落しているようです。したがって、Beanの定義は次のようになります。

<spring:bean id="FTC"
    class="org.mule.tck.functional.FunctionalTestComponent" init-method="initialise" />
于 2012-04-19T12:55:21.210 に答える