warbasedaxisconfigurator.java
来自「开源的axis2框架的源码。用于开发WEBSERVER」· Java 代码 · 共 345 行 · 第 1/2 页
JAVA
345 行
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
/**
* Gets the axis configuration object by loading the repository.
* The order of initialization is according the the following precedence:
* <ul>
* <li>If the parameter axis2.repository.path is present, this folder is used as the location to the repository.
* <li>Otherwise, if the parameter axis2.repository.url is present, the URL is used as the location to the repository.
* <li>Otherwise, when both of the above init parameters are not present, the web applications WEB-INF folder is used as the folder for the repository.
* </ul>
*
* @return the instance of the AxisConfiguration object that reflects the repository according to the rules above.
* @throws AxisFault when an error occurred in the initialization of the AxisConfiguration.
*/
public AxisConfiguration getAxisConfiguration() throws AxisFault {
try {
String repository = null;
if (repository == null) {
repository = config.getInitParameter(PARAM_AXIS2_REPOSITORY_PATH);
if (repository != null) {
loadRepository(repository);
log.debug("loaded repository from path: " + repository);
}
}
if (repository == null) {
repository = config.getInitParameter(PARAM_AXIS2_REPOSITORY_URL);
if (repository != null) {
loadRepositoryFromURL(new URL(repository));
log.debug("loaded repository from url: " + repository);
}
}
if (repository == null) {
if (config.getServletContext().getRealPath("") != null) {
// this is an unpacked war file
repository = config.getServletContext().getRealPath("/WEB-INF");
}
if (repository != null) {
loadRepository(repository);
log.debug("loaded repository from /WEB-INF folder (unpacked war)");
}
}
if (repository == null) {
URL url = config.getServletContext().getResource("/WEB-INF/");
if (url != null) {
repository = url.toString();
loadRepositoryFromURL(url);
log.debug("loaded repository from /WEB-INF/ folder (URL)");
}
}
if (repository == null) {
loadFromClassPath();
log.debug("loaded repository from classpath");
}
} catch (Exception ex) {
log.error(ex + ": loading repository from classpath", ex);
loadFromClassPath();
}
axisConfig.setConfigurator(this);
return axisConfig;
}
//to load services
/**
* Loads the services within the repository.
* When the axis2.repository.path init parameter was present, we just call loadServices() in the deployment engine.<br/>
* When the axis2.repository.url init parameter was present we load services from the respective URL value of the init parameter.<br/>
* Otherwise, try to load the services from the /WEB-INF folder within the web application.
*/
public void loadServices() {
try {
String repository;
repository = config.getInitParameter(PARAM_AXIS2_REPOSITORY_PATH);
if (repository != null) {
super.loadServices();
log.debug("loaded services from path: " + repository);
return;
}
repository = config.getInitParameter(PARAM_AXIS2_REPOSITORY_URL);
if (repository != null) {
loadServicesFromUrl(new URL(repository));
log.debug("loaded services from URL: " + repository);
return;
}
loadServicesFromWebInf();
if (config.getServletContext().getRealPath("") != null) {
super.loadServices();
log.debug("loaded services from webapp");
return;
}
URL url = config.getServletContext().getResource("/WEB-INF/");
if (url != null) {
loadServicesFromUrl(url);
log.debug("loaded services from /WEB-INF/ folder (URL)");
}
} catch (MalformedURLException e) {
log.info(e.getMessage());
}
}
//To engage globally listed modules
public void engageGlobalModules() throws AxisFault {
engageModules();
}
/**
* This method will look inside the web-inf directory to find services.xml
* inside that , if it is there will load that and creat service group out
* of that and add into axisConfig. User can drop corresponding class files
* into class directory.
*/
private void loadServicesFromWebInf() {
try {
InputStream servicexml = config.getServletContext().
getResourceAsStream("/WEB-INF/services.xml");
if (servicexml != null) {
HashMap wsdlServices = new HashMap();
ArchiveReader archiveReader = new ArchiveReader();
String path = config.getServletContext().getRealPath("/WEB-INF");
if (path != null) {
archiveReader.processFilesInFolder(new File(path), wsdlServices);
}
AxisServiceGroup serviceGroup = DeploymentEngine.buildServiceGroup(servicexml,
Thread.currentThread().getContextClassLoader(),
"annonServiceGroup",
configContext,
archiveReader,
wsdlServices);
axisConfig.addServiceGroup(serviceGroup);
}
} catch (AxisFault axisFault) {
log.info(axisFault);
} catch (FileNotFoundException e) {
log.info(e);
} catch (XMLStreamException e) {
log.info(e);
}
}
public void setConfigContext(ConfigurationContext configContext) {
super.setConfigContext(configContext);
// setting ServletContext into configctx
configContext.setProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT,
config.getServletContext());
// setting ServletContext into configctx
configContext.setProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT,
config.getServletContext());
Parameter servletConfigParam = new Parameter();
servletConfigParam.setName(HTTPConstants.HTTP_SERVLETCONFIG);
servletConfigParam.setValue(config);
try {
configContext.getAxisConfiguration().addParameter(servletConfigParam);
} catch (AxisFault axisFault) {
log.error(axisFault.getMessage(), axisFault);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?