gpt4 book ai didi

java - 如何在 Spring REST Servlet 旁边使用 CXF Soap Servlet?

转载 作者:行者123 更新时间:2023-12-02 05:03:30 24 4
gpt4 key购买 nike

我提供 soap webservice 采用 java-first 方法,因此使用 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显示一条 Spring 消息 "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/*");
}

关于java - 如何在 Spring REST Servlet 旁边使用 CXF Soap Servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28024606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com