Настройте веб-службы SOAP Spring Boot на другой порт, чем веб-интерфейс - PullRequest
0 голосов
/ 03 июля 2019

У меня есть контейнер Jetty в главном контексте приложения, работающий по порту 8080 путь /. Текущее состояние таково, что службы мыла настроены на подпуть / ws, но на том же порту.

@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/*");
    }
}

Я хочу, чтобы остальная часть веб-API работала на порте 8080, но все классы @Endpoint находятся на другом порту, скажем, 8003.

Я понимаю, что возможное решение состоит в том, чтобы создавать различные модули и объединять их вместе с иерархией контекста приложения https://www.baeldung.com/spring-boot-context-hierarchy.

Но так как все, что я хочу, это всего лишь один аннотированный бин @Endpoint, чтобы жить в отдельном контексте, я бы хотел найти решение, в котором мне не нужно разбивать их на разные модули. Я предполагаю, что идея состоит в том, чтобы создать дочерний контекст приложения, который содержит фабрику JettyServletWebServerFactory и конечную точку, но я, кажется, не могу реализовать это технически.

...