axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Isuru Eranga Suriarachchi (JIRA)" <>
Subject [jira] Commented: (AXIS2-4101) Conflict with multiple deployers for the same extension
Date Thu, 06 Jan 2011 07:15:46 GMT


Isuru Eranga Suriarachchi commented on AXIS2-4101:

Hi Jarek,

I agree that RepositoryListener.findServicesInDirectory() should not try to deploy non Axis2
service artifacts. That is because, the key for each deployer is derived by using folder name
and the file extension. So when we find service in the repository/services folder, if we find
a file with some other extension (say .bar), we don't know whether there are more than one
deployers registered in the DeploymentEngine for that extension with different folder names.
In that case, according to following code in RepositoryListener.findServicesInDirectory(),
last deployer registered for that particular extension is selected. That is completely wrong.

                    } else {
                        String ext = DeploymentFileData.getFileExtension(file.getName());
                        Deployer deployer = deploymentEngine.getDeployerForExtension(ext);
                        // If we found a deployer for this type of file, use it.  Otherwise
                        // ignore the file.
                        if (deployer != null) {
                            addFileToDeploy(file, deployer, WSInfo.TYPE_SERVICE);

So we should not try to deploy non Axis2 services within the repository/service folder.


> Conflict with multiple deployers for the same extension 
> --------------------------------------------------------
>                 Key: AXIS2-4101
>                 URL:
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: nightly
>            Reporter: Jarek Gawor
>            Assignee: Isuru Eranga Suriarachchi
>            Priority: Critical
> The axis2.xml contains the following entries for two deployers for the same extension:
>     <deployer extension=".jar" directory="servicejars"
>               class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
>     <deployer extension=".jar" directory="transports"
>               class="org.apache.axis2.deployment.TransportDeployer"/>
> Once would think that any jar files found in the "servicejars" directory would be handled
by the JAXWSDeployer and jar files found in the "transports" directory would be handled by
the TransportDeployer. However, this is not implemented that way. In fact, the code assumes
that there is only one Deployer for a given extension. So effectively the JAXWSDeployer will
never be called/used. See AxisConfigBuilder.processDeployers() or DeploymentEngine.getDeployerForExtension().

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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message