【问题标题】:Camel Rest and RestController in the same projectCamel Rest 和 RestController 在同一个项目中
【发布时间】:2022-01-26 13:17:45
【问题描述】:

我的项目中有一个骆驼休息,并为它配置了一个 servlet。目前我正在尝试添加一个没有骆驼的常规 RestController。两种类型的休息可以在同一个项目中吗? 例如

@Override
public void configure() throws Exception {
    rest("/dictionary/get-dictionary")
            .get()
            .param().name("dictionary").required(true).type(RestParamType.query).endParam()
            .param().name("name").required(true).type(RestParamType.query).endParam()
             .....
            .endRest();

为骆驼实现的CamelServlet

@RestController
@RequestMapping("/createOrder")
@RequiredArgsConstructor
public class OrderController {
    private final OrderService OrderService;

    @PostMapping
    public void createForm(@RequestBody App app) {
        orderService.createFullOrder(app);
    }
}

当我请求 createOrder 时,我总是得到 404。如何使这两种类型的控制器都工作? 多谢指教

【问题讨论】:

  • 我能看到这个工作的唯一方法是让 RestController 在创建时以某种方式获取 Camel servlet。不知道如何实现这一点......

标签: spring-mvc apache-camel


【解决方案1】:

解决方案

 @Configuration
    public class AppConfig {
    
        @Bean
        public DispatcherServlet dispatcherServlet() {
            return new DispatcherServlet();
        }
    
        @SuppressWarnings("rawtypes")
        @Bean
        public ServletRegistrationBean axisServletRegistrationBean() {
            @SuppressWarnings("unchecked")
            ServletRegistrationBean registration = new ServletRegistrationBean(dispatcherServlet(), "/createOrder");
            registration.addUrlMappings("/createOrder");
            return registration;
        }
    }



    @Configuration
    @EnableWebMvc
    @ComponentScan(basePackages = "com.package.package")
    public class WebConfig {
    

    }

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 2016-03-20
    • 2016-02-05
    • 2016-06-13
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多