Hi,

I was working in Geronimo on a simple issue where the service endpoint
url address in WSDL gets cached on the very first request and does not
get updated. I was looking through similar code in CXF and noticed a
few things and now I'm wondering how things should work.

1) What's the purpose of publishedEndpointUrl property? I see that it
can be set in EndpointImpl and it is used in WSDLQueryHandler to
update the service soap:address location. But, a) shouldn't this
property be also used to update the schema/wsdl imports? and b)
shouldn't that value also be returned in
WebServiceContext.getEndpointReference() and/or
Endpoint.getEndpointReference()?

2) The service endpoint address in WSDL returned by CXFServlet will be
updated each time because ServletController.updateDests() updates the
address property of the endpoint. But doesn't that create a little
race condition with WebServiceContext.getEndpointReference()? For
example, if you have 2 concurrent requests one getting the WSDL and
another one calling WebServiceContext.getEndpointReference()? Maybe
WebServiceContext.getEndpointReference() should be using the request
url instead of the endpoint address for the EPR address?

Jarek

Reply via email to