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 才能正常工作?
我想要:
localhost:8080/ws/*
- 网络服务
localhost:8080/web/*
- MVC 组件
提前致谢!
问题在于 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/*");
}
我想合并来自 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 才能正常工作?
我想要:
localhost:8080/ws/*
- 网络服务localhost:8080/web/*
- MVC 组件
提前致谢!
问题在于 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/*");
}