CXF всегда возвращает URL в WSDL, с которым он был открыт впервые - PullRequest
0 голосов
/ 29 ноября 2018

Я создаю SOAP конечную точку с CXF:

@Bean
Endpoint endpoint() {
    EndpointImpl endpoint = new EndpointImpl(bus, myEndpoint);
    endpoint.publish(path);
    return endpoint;
}

И когда я открываю URL в моем браузере, как: http://localhost:6666/app/ws?wsdl У меня есть этот URL в возвращенном wsdl: <soap:address location="http://localhost:6666/app/ws"/>

Но когда я открываю с внешним URL: http://172.16.105.134:6666/app/ws?wsdl не имеет значения, у меня есть этот URL в возвращенном wsdl: <soap:address location="http://localhost:6666/app/ws"/>

В общем, я всегда получаю URL, который я впервые открываю.

Но моя задача всегда состоит в том, чтобы вернуть URL, с которого он был запрошен.Как я могу это сделать?

1 Ответ

0 голосов
/ 03 декабря 2018

WSDL кэшируется org.apache.cxf.wsdl11.WSDLManagerImpl.Вы можете предоставить собственную реализацию org.apache.cxf.wsdl.WSDLManager или использовать свойство publishedEndpointUrl, чтобы обновить его (см. https://github.com/apache/cxf/blob/master/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java#L347).

...