我在主应用程序上下文中在端口8080路径/上运行的Jetty容器。当前状态是在子路径/ ws上但在同一端口上配置soap服务。
@EnableWs
@Configuration
public class SoapConfiguration extends WsConfigurationSupport {
@Bean
public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(ApplicationContext applicationContext) {
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
servlet.setApplicationContext(applicationContext);
servlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean<>(servlet, "/ws/*");
}
}
我想要的是在8080端口上运行的其余Web api的功能,但是所有@Endpoint类都位于另一个端口,例如8003。
我知道一种可能的解决方案是创建不同的模块,并将它们与应用程序上下文层次结构https://www.baeldung.com/spring-boot-context-hierarchy打包在一起。
但是,由于我真正想要的只是让1个@Endpoint注释的Bean驻留在单独的上下文中,因此我想找到一个无需将它们拆分为不同模块的解决方案。我认为这个想法是创建一个包含JettyServletWebServerFactory
工厂和端点的子应用程序上下文,但是我似乎无法从技术上实现它。