You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "David Wettig (JIRA)" <ji...@apache.org> on 2008/07/04 10:29:50 UTC

[jira] Updated: (CXF-1681) Base URL caching in ServletController avoids needed updateDests() call on republishing endpoints

     [ https://issues.apache.org/jira/browse/CXF-1681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Wettig updated CXF-1681:
------------------------------

    Remaining Estimate:     (was: 2h)
     Original Estimate:     (was: 2h)

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