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

Ben Reif updated AXIS2-4362:
----------------------------

    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.

  was:
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 WarBasedAxisConfigurator.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  WarBasedAxisConfigurator should determine the correct service QName in 
this case and pass that into the WSDL11ToAxisServiceBuilder.

        Summary: If WSDL has multiple services, DeploymentEngine uses incorrect 
one  (was: If WSDL has multiple services, WarBasedAxisConfigurator uses 
incorrect one)

> If WSDL has multiple services, DeploymentEngine uses incorrect one
> ------------------------------------------------------------------
>
>                 Key: AXIS2-4362
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4362
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: deployment
>    Affects Versions: 1.4
>            Reporter: Ben Reif
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to