[英]How to use CXF soap servlet aside spring REST servlet?
我使用Java優先方法提供soap
webservice,因此為此使用CXF
。 為了使其通過spring-boot
發布,我具有以下調度程序servlet:
@Bean
public ServletRegistrationBean dispatcherServletRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(new CXFServlet(), "/services/*");
registration.setName(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME);
return registration;
}
這工作正常,但我現在想提供REST
服務。 其余服務不應由cxf發布,而應由默認的spring映射發布:
@RestConstroller
@RequestMapping("/rest/content")
public class MyServiceRest extends SpringBeanAutowiringSupport {
}
結果:
localhost:8080/app-name/rest/content
結果為HTTP 404。 localhost:8080/app-name/services/rest/content
顯示一條春季消息"No service was found."
因此,后者以某種方式位於CXFServlet
的上下文中,並且未找到REST服務。
為了使此設置有效,我必須更改什么?
順便說一句:當我刪除ServletRegistrationBean
,其余服務將按預期工作。 但這不是一個選擇,因為我必須同時提供肥皂服務。
您的名為dispatcherServletRegistration
bean替換了Spring Boot的默認DispatcherServlet
因此您的左邊只有一個CXFServlet
而在應用程序中沒有DispatcherServlet
。
更新您的bean,以將CXFServlet
注冊為如下所示:
@Bean
public ServletRegistrationBean cxfServletRegistration() {
return new ServletRegistrationBean(new CXFServlet(), "/services/*");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.