Spring 使用 MVC 启动 SOAP 网络服务

Spring Boot SOAP webservice with MVC

我想合并来自 Spring 指南的两个 Spring(spring-boot)应用程序:

遗憾的是,这些示例不能一起使用。 servlet 调度程序有问题。添加 dispatcherServlet bean 后 - MVC servlet 不工作(错误 404)。

@Bean
public ServletRegistrationBean dispatcherServlet(ApplicationContext applicationContext) {
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/ws/*");
}

如何配置 servlet dispatcher 才能正常工作?

我想要:

提前致谢!

问题在于 MessageDispatcherServlet 的注册,由于名称 dispatcherServlet 它覆盖了由 Spring 引导注册的 DispatcherServlet。您网站的 MVC 部分需要后者。

要修复它,只需将您的方法重命名为 dispatcherServlet 以外的任何名称 messageDispatcherServlet

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/ws/*");
}