使用MVC的Spring Boot SOAP Web服务

时间:2015-01-12 15:52:51

标签: java spring spring-mvc spring-boot spring-ws

我想结合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调度程序才能正常工作?

我想:

  • localhost:8080/ws/* - webservice
  • localhost:8080/web/* - MVC组件

提前致谢!

1 个答案:

答案 0 :(得分:9)

问题在于MessageDispatcherServlet由于名称dispatcherServlet的注册而覆盖了Spring Boot注册的DispatcherServlet。后者是您网站的MVC部分所必需的。

要解决此问题,只需将您的方法重命名为dispatcherServletmessageDispatcherServlet即可。

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