Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Cannot Reproduce
-
1.4
-
None
-
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.