Spring integration 无法向Spring Boot注册HttpRequestHandlerServlet
我试图使用HttpRequestHandlerServlet与HttpRequestHandlingMessagingGateway共同向浏览器公开简单的RESTURL。但我无法注册HttpRequestHandlerServlet,我正在以以下方式进行注册:Spring integration 无法向Spring Boot注册HttpRequestHandlerServlet,spring-integration,Spring Integration,我试图使用HttpRequestHandlerServlet与HttpRequestHandlingMessagingGateway共同向浏览器公开简单的RESTURL。但我无法注册HttpRequestHandlerServlet,我正在以以下方式进行注册: @Bean public ServletRegistrationBean inboundServletRegistration(ApplicationContext context) { final HttpRequestHand
@Bean
public ServletRegistrationBean inboundServletRegistration(ApplicationContext context) {
final HttpRequestHandlerServlet servlet = new HttpRequestHandlerServlet();
ServletRegistrationBean registration = new ServletRegistrationBean(
servlet, "/demo/*");
registration.setName("inboundServletRegistration");
return registration;
}
Spring启动应用程序启动正常,但尝试使用映射访问HttpRequestHandlingMessagingGateway端点时:
@Bean
public HttpRequestHandler httpInboundEndPoint() {
// Http Rest gateway expecting reply.
final HttpRequestHandlingMessagingGateway restGateway = new
HttpRequestHandlingMessagingGateway(true);
// Mapping of URL this gateway consumes...
restGateway.setRequestMapping(
mapping(new HttpMethod[]{HttpMethod.GET}, "/context/{param}"));
在地址{param}处,我得到了完全无意义的崩溃:
org.springframework.beans.factory.BeanNotOfRequiredTypeException:
名为“inboundServletRegistration”的Bean必须是[org.springframework.web.HttpRequestHandler]类型,但实际上是[org.springframework.boot.context.embedded.ServletRegistrationBean]类型
你遇到这个问题了吗?你能帮帮我吗?好的,我知道了
传递此问题的关键是以与HttpRequestHandlerServlet注册bean相同的bean名称注册HttpRequestHandler…返回XML配置…:-(有人吗?我在想这是否真的可以工作……因为在查看了HttpRequestHandlerServlet的源代码之后……问题似乎在于HttpRequestHandlerServlet的servlet名称与HttpRequestHandler的名称不匹配(在我的例子中是HttpRequestHandlingMessagingGateway)…是否可以设置HttpRequestHandlerServlet的名称?