4

Spring Camel コンテキスト、1 つのルート、および 1 つのテストを含む小さなプロジェクトで Fuse IDE (Eclipse) を使用しています。テスト実行環境を定義するための xml を追加しました。

テストを実行すると、コンテキスト Bean 情報をロードするタイプの不一致で失敗します (Bean コンテキストの PropertyDescriptor クラスをインスタンス化するとき、セッター タイプは org.apache.camel.spring.SpringCamelContext であり、ゲッター タイプは org.apache.camel.model.モデルキャメル コンテキスト...

元の例外は、「java.beans.IntrospectionException: 読み取りメソッドと書き込みメソッドの型が一致しません」です。

テストコードは次のとおりです。

public class TestDBRoute extends CamelSpringTestSupport {   

@DirtiesContext //reload context
@Test
public void testPoll() throws Exception {
    //context.start();
    System.out.println("comenzo");
    Thread.sleep(1000);
    System.out.println("termino");
    //context.stop();
    assertEquals("first", 1, 1);
}

@Override
protected AbstractApplicationContext createApplicationContext() {
    return new ClassPathXmlApplicationContext("classpath:/com/test-camel-context.xml");
}
}

キャメル コンテキスト コードは次のとおりです。

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
   http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

<camelContext xmlns="http://camel.apache.org/schema/spring">
        <packageScan>
            <package>com.test.fuse.routes</package>
        </packageScan>
</camelContext>
</beans>

ルート コードは空です。RouteBuilder を拡張し、configure メソッドをオーバーライドするだけです。

ubuntuでOpenJDK 1.6.0_24を使用しています。

他に何か必要な場合はお尋ねください。

ありがとう

4

1 に答える 1

1

ワークスペースをきれいにし、pom.xml で春のバージョンを 2.5.4 から 2.5.6 に変更しただけで、すべてが機能します。

Claud Ibsen と Babak Vahdat の協力に感謝します。

于 2012-08-27T19:25:44.847 に答える