По сути, я хочу, чтобы мое приложение SpringBoot Camel запускало метод в моем классе Bean, как только будет достигнут маршрут http://localhost: 8080 / workflow / start . Я настроил свой проект следующим образом, и при достижении конечной точки, которую я перечислил выше, приложение не запускает мой метод, и при достижении конечной точки на консоли ничего не появляется.
@SpringBootApplication
@Configuration
@ComponentScan("com.example")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
public ServletRegistrationBean camelServletRegistrationBean() {
ServletRegistrationBean registration = new ServletRegistrationBean(new CamelHttpTransportServlet(), "/workflow/*");
registration.setName("CamelServlet");
return registration;
}
}
public class FooBean {
public static void initialize() {
System.out.println("initialized");
}
...
@Component
public class FooRouter extends RouteBuilder {
@Override
public void configure() throws Exception {
restConfiguration()
.component("servlet")
.bindingMode(RestBindingMode.json);
rest().get("/start")
.to("direct:start");
from("direct:start")
.bean(FooBean.class, "initialize")
.log(LoggingLevel.INFO, "initialize successful");
}
}