簡體   English   中英

除了Spring REST Servlet之外,如何使用CXF Soap Servlet?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM