spring - Spring 引导 MessageDispatcherServlet 覆盖 DispatcherServlet。如何跳过覆盖并注册两个 DispatcherServlet?
问题描述
在单个应用程序中,我尝试使用肥皂以及休息网络服务。每个 servlet 都有不同的 URI,下面是 config 类的代码。
问题是:只有soap 服务URL 工作正常,其余的则出现405 错误。
@EnableWs
@Configuration
public class WebServiceConfig {
@Bean
public ServletRegistrationBean RsRegistrationBean(ApplicationContext applicationContext) {
DispatcherServlet servlet = new DispatcherServlet();
servlet.setApplicationContext(applicationContext);
return new ServletRegistrationBean(servlet,"/rest/*");
}
@Bean
public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(
ApplicationContext context) {
MessageDispatcherServlet messageDispatcherServlet = new MessageDispatcherServlet();
messageDispatcherServlet.setApplicationContext(context);
messageDispatcherServlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean<>(messageDispatcherServlet,"/");
}
}
解决方案
删除您的WebServiceConfig
类,因为两者都已由 Spring Boot 自动配置(从 Spring Boot 1.4 开始)。将以下内容添加到您的application.properties
spring.mvc.servlet.path=/rest
spring.webservices.path=/
现在您可以利用 Spring Boot 提供的基础设施,而不是与之抗争。
推荐阅读
- c++ - 有人可以解释 3D 形状中的 Z 值是多少吗?
- firebase - 如何在颤振飞镖中每 20 秒显示一次插页式广告
- ibm-cloud - IBM Cloud:无法访问 Ambari 控制台
- python - Python中时间序列的真实样本外预测
- javascript - ReferenceError:foundItems 未定义
- java - 使用 JAVA 获取 WebElement 在屏幕上的位置
- python-3.x - 使用 Python 3.7 云函数并行写入 Firestore
- python - 使用scrapy删除空数据
- c++ - 是否可以向 Win32Gui 中的 WindowProcedure 发送自定义消息?
- flutter - 在 buildContext 空间中使用连字符来抖动某些情况