public OMElement generateOM() throws Exception {
OMFactory fac = OMAbstractFactory.getOMFactory();
wsdl = fac.createOMNamespace(WSDL_NAMESPACE, DEFAULT_WSDL_NAMESPACE_PREFIX);
OMElement ele = fac.createOMElement("definitions", wsdl);
setDefinitionElement(ele);
policiesInDefinitions = new HashMap();
Map namespaceMap = axisService.getNamespaceMap();
if (namespaceMap == null)
namespaceMap = new HashMap();
WSDLSerializationUtil.populateNamespaces(ele, namespaceMap);
soap = ele.declareNamespace(URI_WSDL11_SOAP, SOAP11_PREFIX);
soap12 = ele.declareNamespace(URI_WSDL12_SOAP, SOAP12_PREFIX);
http = ele.declareNamespace(HTTP_NAMESPACE, HTTP_PREFIX);
mime = ele.declareNamespace(MIME_NAMESPACE, MIME_PREFIX);
wsaw = ele.declareNamespace(AddressingConstants.Final.WSAW_NAMESPACE, "wsaw");
String prefix = WSDLSerializationUtil.getPrefix(axisService.getTargetNamespace(),
namespaceMap);
if (prefix == null || "".equals(prefix)) {
prefix = DEFAULT_TARGET_NAMESPACE_PREFIX;
}
namespaceMap.put(prefix, axisService.getTargetNamespace());
tns = ele.declareNamespace(axisService.getTargetNamespace(), prefix);
// axis2.xml indicated no HTTP binding?
boolean disableREST = false;
Parameter disableRESTParameter = axisService.getParameter(
org.apache.axis2.Constants.Configuration.DISABLE_REST);
if (disableRESTParameter != null
&& JavaUtils.isTrueExplicitly(disableRESTParameter.getValue())) {
disableREST = true;
}
boolean disableSOAP11 = false;
Parameter disableSOAP11Parameter = axisService
.getParameter(org.apache.axis2.Constants.Configuration.DISABLE_SOAP11);
if (disableSOAP11Parameter != null
&& JavaUtils.isTrueExplicitly(disableSOAP11Parameter.getValue())) {
disableSOAP11 = true;
}
// axis2.xml indicated no SOAP 1.2 binding?
boolean disableSOAP12 = false;
Parameter disableSOAP12Parameter = axisService
.getParameter(org.apache.axis2.Constants.Configuration.DISABLE_SOAP12);
if (disableSOAP12Parameter != null
&& JavaUtils.isTrueExplicitly(disableSOAP12Parameter.getValue())) {
disableSOAP12 = true;
}
// adding documentation element
// < documentation ><b>NEW!</b> This method accepts an ISBN
// string and returns <b>Amazon.co.uk</b> Sales Rank for
// that book.< /documentation >
WSDLSerializationUtil.addWSDLDocumentationElement(axisService, ele, fac, wsdl);
ele.addAttribute("targetNamespace", axisService.getTargetNamespace(), null);
OMElement wsdlTypes = fac.createOMElement("types", wsdl);
ele.addChild(wsdlTypes);
// populate the schema mappings
axisService.populateSchemaMappings();
ArrayList schemas = axisService.getSchema();
for (int i = 0; i < schemas.size(); i++) {
StringWriter writer = new StringWriter();
// XmlSchema schema = (XmlSchema) schemas.get(i);
XmlSchema schema = axisService.getSchema(i);
String targetNamespace = schema.getTargetNamespace();
if (!Constants.NS_URI_XML.equals(targetNamespace)) {
schema.write(writer);
String schemaString = writer.toString();
if (!"".equals(schemaString)) {
wsdlTypes.addChild(XMLUtils.toOM(new StringReader(schemaString)));
}
}
}
generateMessages(fac, ele);
generatePortType(fac, ele);
// generateSOAP11Binding(fac, ele);
// if (!disableSOAP12) {
// generateSOAP12Binding(fac, ele);
// }
// if (!disableREST) {
// generateHTTPBinding(fac, ele);
// }
generateService(fac, ele, disableREST, disableSOAP12 , disableSOAP11);
addPoliciesToDefinitionElement(policiesInDefinitions.values().iterator(), definition);
return ele;
}
Build the OM structure of the WSDL document |