Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-4362

If WSDL has multiple services, DeploymentEngine uses incorrect one

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • 1.4
    • None
    • deployment
    • None

    Description

      We have a WSDL file that defines multiple services. Each service is deployed within a War as a seperate *.aar file, but they share the same WSDL file.

      In DeploymentEngine.populateService(), it calls:

      WSDL11ToAxisServiceBuilder wsdl2AxisServiceBuilder = new WSDL11ToAxisServiceBuilder(wsdlStream, null, null);.

      It passes in null for the service QName, even though it has the value of serviceName and it could get the target namespace from the services.xml or the WSDL definition. If you pass in null, this causes the WSDL11ToAxisServiceBuilder.findService() to just pick the first <wsdl:service> that has a Port. If you have multiple services defined in your WSDL file, this results in the incorrect AxisService objects being put into the AxisConfiguration since it's always just using the information from the first one that it finds with a port.

      The DeploymentEngine should determine the correct service QName in this case and pass that into the WSDL11ToAxisServiceBuilder.

      Attachments

        1. HelloOne.aar
          1.0 kB
          Pradeep Fernando
        2. HelloTwo.aar
          2 kB
          Pradeep Fernando

        Activity

          People

            Unassigned Unassigned
            breif Ben Reif
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: