[ 
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.

Reply via email to