我目前正在尝试让一个cxfservlet与常规的webmvcservlet一起运行。我的cxf servlet定义了多个端点,即: /api/v1/*
/soap/v2/* /internal-api/v1/*
我还想要 DispatcherServlet
让spring mvc在 /api/v2/*
配置时:
@Bean
public ServletRegistrationBean<CXFServlet> cxfServlet() {
final ServletRegistrationBean<CXFServlet> cxfServletServletRegistrationBean = new ServletRegistrationBean<>(new CXFServlet(), "/*");
return cxfServletServletRegistrationBean;
}
关于cxf的所有东西都能工作,但没有更多 @Controller
在SpringBoot中,应用程序不再是可访问的(当然,现在一切都指向cxfservlet)
但当我配置时:
@Bean
public ServletRegistrationBean<CXFServlet> cxfServlet() {
final ServletRegistrationBean<CXFServlet> cxfServletServletRegistrationBean = new ServletRegistrationBean<>(new CXFServlet(), "/api/v1/*");
return cxfServletServletRegistrationBean;
}
只有使用这样的url,cxf的端点现在才可以访问 http://localhost:8080/api/v1/api/v1/test
.
我该如何配置spring启动应用程序呢 /api/v2/*
是否指向springmvcservlet,而cxfservlet仍然像上面描述的那样工作?
1条答案
按热度按时间6l7fqoea1#
手动注册dispatcher servlet,而不是让spring boot autoconfiguration这样做,解决了以下问题:
请注意,在/*以外的任何位置注册cxfservlet都会破坏cxfservlet的路由。