[
https://issues.apache.org/jira/browse/AXIS2-4101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12978186#action_12978186
]
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) {
deployer.setDirectory(deploymentEngine.getServicesDir().getName());
addFileToDeploy(file, deployer,
WSInfo.TYPE_SERVICE);
}
}
So we should not try to deploy non Axis2 services within the repository/service
folder.
Thanks,
~Isuru
> Conflict with multiple deployers for the same extension
> --------------------------------------------------------
>
> Key: AXIS2-4101
> URL: https://issues.apache.org/jira/browse/AXIS2-4101
> 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: [email protected]
For additional commands, e-mail: [email protected]