我正在嘗試在 Spring Boot 中測試 Camel 處理器。然而,即使遵循 Camel in Action 和其他答案的指導,我也會遇到很多異常。我使用的是駱駝3.0.0-M4例如,這是我的測試:@SpringBootTest@BootstrapWith(SpringBootTestContextBootstrapper.class)public class MyProcessorTest extends CamelTestSupport { @Produce ProducerTemplate template; @EndpointInject(uri = "mock:out") private MockEndpoint resultEndpoint; @Before public void setUp() throws Exception { super.setUp(); } @BeforeClass public static void stopCamelStart() { SpringCamelContext.setNoStart(true); } @AfterClass public static void enableCamelStart() { SpringCamelContext.setNoStart(false); } @Before protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { from("seda:test") .process(new MyProcessor()) .to("mock:out"); } }; } @Test public void testPrepend() throws Exception { Map<String, String> body = new HashMap<String, String>(); body.put("test", "body"); template.sendBody("seda:test", body); String result = resultEndpoint.getExchanges().get(0).getIn().getBody(String.class); }}我得到一個java.lang.ArrayIndexOutOfBoundsException如果我嘗試啟動駱駝上下文,context.start();我會得到一個java.lang.NullPointerException如果我交換發(fā)送正文的路線,則template.sendBody("mock:out", body);不會發(fā)生任何處理。如果我從 改為 ,seda:test我direct:test會得到一個非常慢的運行測試并且org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: direct://test我哪里錯了??
在 Spring Boot 中測試 Camel 處理器
幕布斯7119047
2023-09-20 17:05:07