Как изменить адрес мыла в конце wsdl

У меня есть WSDL, который генерируется Apache CXF WS, который выглядит следующим образом

<wsdl:service name="MyWS">
    <wsdl:port binding="tns:MyWSSoapBinding" name="MyWSImplPort">
        <soap:address location="http://someaddress/MyApp/ws/MyWS"/>
    </wsdl:port>
</wsdl:service>

Я хотел бы изменить soap:address иметь протокол https вместо http,

Причина этой необходимости. Мы запускаем SpringBootApp на сервере Tomcat за LoadBalancer. Балансировщик нагрузки получит запрос на адрес https://someaddress/MyApp/ws/MyWs?wsdl а затем перенаправляет запрос на сервер через http, Когда wsdl автоматически генерируется Apache CXF, он генерирует его с помощью адреса soap: с протоколом http вместо https,

В приложении.java

@Bean
public ServletRegistrationBean servletRegistrationBean() {
   CXFServlet servlet = new CXFServlet();
   return new ServletRegistrationBean(servlet, "/MyApp/ws/*");
}

@Bean
@Autowired
public Endpoint submitAssessment(ApplicationContext context, MyWS myWS) {
   Bus cxfBus = (Bus)context.getBean(Bus.DEFAULT_BUS_ID);
   EndpointImpl endpoint = new EndpointImpl(cxfBus, myWS);
   endpoint.setAddress("/MyWS");
   cxfBus.getInInterceptors().add(new LoggingInInterceptor());
   endpoint.publish();
   return endpoint;
}

На моей реализации сервиса

@Service
@WebService(serviceName = "MyWS", name = "MyWSPortType", portName = "MyWSPort", )
public class MyWSImpl implements MyWS {

1 ответ

Решение

Параметр "publEndpointURL" выглядит так, как вы ищете.

Смотрите: http://cxf.apache.org/docs/jax-ws-configuration.html

Другие вопросы по тегам