Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-3478

Endpoint address not resolved correctly when message exchange destination is not instance of AbstractHTTPDestination

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.3.2, 2.3.3, 2.4, 2.3.4, 2.4.1, 2.3.5
    • 2.4.1, 2.3.5
    • JAX-RS
    • None

    Description

      Issue occurs (for example) if CXF jaxrs server is called as a consumer in a Camel Route. The jaxrs server is then setup with an direct camel address: 'camel://direct:jaxrsEndpoint', and is fed requests from a camel-jetty component.

      At this point Calls to HttpUtils.getEndpointAddress returns the 'camel://direct:jaxrsEndpoint' address, instead of the actual 'http://' address. This seems to be correct behavior, but is not what the user might expect.

      I am not completely sure where to change this (since I just stared using CXF), but I think it is either: org.apache.cxf.jaxrs.utils.HttpUtils.getEndpointAddress(), where the endpoint is fetched from the destination of the message, or: org.apache.cxf.jaxrs.impl.UriInfoImpl.getBaseUri(), where an extra check can be Build in looking for the existence of: org.apache.cxf.message.Message.BASE_PATH (which can be set to indicate the base path (I think)), indicating the 'real' HTTP Base Uri, instead of the destination Endpoint.

      I am going to make a patch for the second option, but if anyone has a better suggestion, please let me know.

      Attachments

        1. patch.txt
          0.8 kB
          Aukjan van Belkum

        Activity

          People

            sergey_beryozkin Sergey Beryozkin
            aukjan Aukjan van Belkum
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: