Hi

Looks like the recently checked-in fix for Bug: CXF 448 wont work in certain
cases.
The wsdllocation is stored in the ServletController while the endpoint is
built from the CXFServlet (CXFServlet#buildEndpoint). Assume I have multiple
endpoints deployed(which would have different wsdllocations).
I could have a single WAR app deployed in the web server, and publish
multiple services to it.
I could programatically publish an endpoint without going through the
CXFServlet. In such cases this solution would fail.
I could think of one probable solution to this issue:

1. Currently, while publishing we store the Server with the ServerRegistry.
2. Later when a request comes for an XSD, we get the corresponding Endpoint
from the ServerRegistry. (Using the Endpoint's address field)
3. Add a method to Endpoint API to get the wsdlLocation from Endpoint.

Thus we can get hold of the user supplied wsdl location, later resolve the
xsd location relative to it.
Please tell me if there is a better solution.

Thanks
Bharath

Reply via email to