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

CXF should set the TCCL to the one of the service being invoked prior any invocation

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • None
    • 2.4.1, 2.3.5
    • None
    • None

    Description

      This is only a problem runing cxf endpoint with http-jetty transport in OSGi container.
      let's say a user has 2 bundles, each with a CXF webservice using http-jetty transport directlyon the same port:

      bundle A - http://0.0.0.0:8080/A
      bundle B - http://0.0.0.0:8080/B

      Problem is that since they are using the same port, a single Jetty engine will be shared and each Jetty thread's class loader will be set to the classloader of whichever bundle started first. So, say bundle A started first, now the classloaders would be assigned as follows:

      bundle A - BundleDelegatingClassLoader for [bundle A]
      bundle B - BundleDelegatingClassLoader for [bundle A]

      Any incoming requests to the service in bundle B will use the classloader from bundle A

      We need ensure we set TCCL for the classloader of serviceObject in AbstractInvoker

      Attachments

        Issue Links

          Activity

            People

              ffang Freeman Yue Fang
              ffang Freeman Yue Fang
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: