public void deploy(DeploymentFileData deploymentFileData) throws DeploymentException {
boolean isDirectory = deploymentFileData.getFile().isDirectory();
ArchiveReader archiveReader;
StringWriter errorWriter = new StringWriter();
archiveReader = new ArchiveReader();
String serviceStatus = "";
try {
deploymentFileData.setClassLoader(isDirectory,
axisConfig.getServiceClassLoader(),
(File)axisConfig.getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR));
HashMap wsdlservice = archiveReader.processWSDLs(deploymentFileData);
if (wsdlservice != null && wsdlservice.size() > 0) {
Iterator services = wsdlservice.values().iterator();
while (services.hasNext()) {
AxisService service = (AxisService) services.next();
Iterator operations = service.getOperations();
while (operations.hasNext()) {
AxisOperation axisOperation = (AxisOperation) operations.next();
axisConfig.getPhasesInfo().setOperationPhases(axisOperation);
}
}
}
AxisServiceGroup serviceGroup = new AxisServiceGroup(axisConfig);
serviceGroup.setServiceGroupClassLoader(deploymentFileData.getClassLoader());
ArrayList serviceList = archiveReader.processServiceGroup(
deploymentFileData.getAbsolutePath(), deploymentFileData,
serviceGroup, isDirectory, wsdlservice,
configCtx);
URL location = deploymentFileData.getFile().toURL();
DeploymentEngine.addServiceGroup(serviceGroup,
serviceList,
location,
deploymentFileData,
axisConfig);
log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_WS,
deploymentFileData.getName(),
location.toString()));
} catch (DeploymentException de) {
de.printStackTrace();
log.error(Messages.getMessage(DeploymentErrorMsgs.INVALID_SERVICE,
deploymentFileData.getName(),
de.getMessage()),
de);
PrintWriter error_ptintWriter = new PrintWriter(errorWriter);
de.printStackTrace(error_ptintWriter);
serviceStatus = "Error:\n" + errorWriter.toString();
throw de;
} catch (AxisFault axisFault) {
log.error(Messages.getMessage(DeploymentErrorMsgs.INVALID_SERVICE,
deploymentFileData.getName(),
axisFault.getMessage()),
axisFault);
PrintWriter error_ptintWriter = new PrintWriter(errorWriter);
axisFault.printStackTrace(error_ptintWriter);
serviceStatus = "Error:\n" + errorWriter.toString();
throw new DeploymentException(axisFault);
} catch (Exception e) {
if (log.isInfoEnabled()) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
log.info(Messages.getMessage(
DeploymentErrorMsgs.INVALID_SERVICE,
deploymentFileData.getName(),
sw.getBuffer().toString()));
}
PrintWriter error_ptintWriter = new PrintWriter(errorWriter);
e.printStackTrace(error_ptintWriter);
serviceStatus = "Error:\n" + errorWriter.toString();
throw new DeploymentException(e);
} catch (Throwable t) {
if (log.isInfoEnabled()) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
log.info(Messages.getMessage(
DeploymentErrorMsgs.INVALID_SERVICE,
deploymentFileData.getName(),
sw.getBuffer().toString()));
}
PrintWriter error_ptintWriter = new PrintWriter(errorWriter);
t.printStackTrace(error_ptintWriter);
serviceStatus = "Error:\n" + errorWriter.toString();
throw new DeploymentException(new Exception(t));
} finally {
if (serviceStatus.startsWith("Error:")) {
axisConfig.getFaultyServices().put(deploymentFileData.getFile().getAbsolutePath(),
serviceStatus);
}
}
}
|