[
https://issues.apache.org/jira/browse/CXF-1681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-1681.
------------------------------
Resolution: Fixed
Fix Version/s: 2.0.8
2.1.2
Assignee: Daniel Kulp
> Base URL caching in ServletController avoids needed updateDests() call on
> republishing endpoints
> ------------------------------------------------------------------------------------------------
>
> Key: CXF-1681
> URL: https://issues.apache.org/jira/browse/CXF-1681
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 2.1.1
> Environment: Standalone Jetty
> Reporter: David Wettig
> Assignee: Daniel Kulp
> Fix For: 2.1.2, 2.0.8
>
>
> In updateDests() the following:
> if (base.equals(lastBase)) {
> return;
> }
> returns on equal base URLs which results in avoiding the needed second call of
> d2.getEndpointInfo().setAddress(base + path);
> which is needed to set the fully qualified URI, because the first setAdress()
> call made by invoke() just sets the relative path.
> What i do is:
> 1. I use the CXFServlet in combination with Jetty (using nearly the original
> example) except of using
> root.addServlet(servlet, "/soap/*") instead of just "/*" as the base path.
> Now i do:
> Endpoint.publish("/testService", impl)
> resulting in a ServletController which first sets in invoke() the adress to
> '/testService' and after that the adress will be set again in updateDests()
> but this time as 'http://localhost:8123/soap/testService'
> This works fine for me, now i can load the WSDL for example.
> 2. The problem now occurs if i indirectly reuse the ServletController by
> doing the following:
> endpoint.stop();
> Endpoint.publish("/testService", impl)
> because the second EndpointInfo.setAdress() call won't be made, because of
> the base URL matching in updateDests() as shown above.
> - The base URL is not changing.
> - The second fully qualified EndpointInfo.setAdress() call is missing.
> - EndpointInfo contains '/testService' and not as needed
> 'http://localhost:8123/soap/testService'
> - Calling WSDL FQ-URL failes because:
> - WSDLQueryHandler can't identify the request using:
> isRecognizedQuery()
> ...
> return
> endpointInfo.getAddress().contains(UrlUtilities.getStem(baseUri.substring(0,
> idx)));
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.