我用SOAP
创建了CXF
端点:
@Bean
Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(bus, myEndpoint);
endpoint.publish(path);
return endpoint;
}
当我在浏览器中打开网址时,例如:http://localhost:6666/app/ws?wsdl
我在返回的wsdl中有以下URL:<soap:address location="http://localhost:6666/app/ws"/>
但是当我使用外部URL打开时:http://172.16.105.134:6666/app/ws?wsdl
没关系,我在返回的wsdl中有以下URL:<soap:address location="http://localhost:6666/app/ws"/>
通常,我总是会得到首次打开的网址。
但是我的任务始终是返回请求它的网址。我该怎么办?
答案 0 :(得分:0)
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)。