use of com.predic8.wsdl.Operation in project service-proxy by membrane.
the class TestServiceInterceptor method handleSOAP12.
private Response handleSOAP12(Element envelope) {
Element body = null;
NodeList children = envelope.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
if (children.item(i) instanceof Text) {
String text = ((Text) children.item(i)).getNodeValue();
for (int j = 0; j < text.length(); j++) if (!Character.isWhitespace(text.charAt(j)))
throw new AssertionError("Found non-whitespace text.");
continue;
}
if (!(children.item(i) instanceof Element))
throw new AssertionError("Non-element child of <Envelope> found: " + children.item(i).getNodeName() + ".");
Element item = (Element) children.item(i);
if (!item.getNamespaceURI().equals(Constants.SOAP12_NS))
throw new AssertionError("Non-SOAP child element of <Envelope> found.");
if (item.getLocalName().equals("Body"))
body = item;
}
if (body == null)
throw new AssertionError("No SOAP <Body> found.");
children = body.getChildNodes();
Element operation = null;
for (int i = 0; i < children.getLength(); i++) {
if (children.item(i) instanceof Text) {
String text = ((Text) children.item(i)).getNodeValue();
for (int j = 0; j < text.length(); j++) if (!Character.isWhitespace(text.charAt(j)))
throw new AssertionError("Found non-whitespace text.");
continue;
}
if (!(children.item(i) instanceof Element))
throw new AssertionError("Non-element child of <Body> found: " + children.item(i).getNodeName() + ".");
operation = (Element) children.item(i);
}
if (operation == null)
throw new AssertionError("No SOAP <Body> found.");
return handleOperation(operation, false);
}
use of com.predic8.wsdl.Operation in project carbon-business-process by wso2.
the class HTRenderingApiImpl method createSoapTemplate.
/**
* Function to create response message template
*
* @param SrcWsdl source wsld : wsdl file path or url
* @param portType callback port type
* @param operation callback operation name
* @param binding callback binding
* @return DOM element of response message template
* @throws IOException If error occurred while parsing string xml to Dom element
* @throws SAXException If error occurred while parsing string xml to Dom element
*/
private static Element createSoapTemplate(String SrcWsdl, String portType, String operation, String binding) throws IOException, SAXException {
WSDLParser parser = new WSDLParser();
// BPS-677
int fileLocationPrefixIndex = SrcWsdl.indexOf(HumanTaskConstants.FILE_LOCATION_FILE_PREFIX);
if (SrcWsdl.indexOf(HumanTaskConstants.FILE_LOCATION_FILE_PREFIX) != -1) {
SrcWsdl = SrcWsdl.substring(fileLocationPrefixIndex + HumanTaskConstants.FILE_LOCATION_FILE_PREFIX.length());
}
Definitions wsdl = parser.parse(SrcWsdl);
StringWriter writer = new StringWriter();
// SOAPRequestCreator constructor: SOARequestCreator(Definitions, Creator, MarkupBuilder)
SOARequestCreator creator = new SOARequestCreator(wsdl, new RequestTemplateCreator(), new MarkupBuilder(writer));
// creator.createRequest(PortType name, Operation name, Binding name);
creator.createRequest(portType, operation, binding);
Element outGenMessageDom = DOMUtils.stringToDOM(writer.toString());
Element outMsgElement = null;
NodeList nodes = outGenMessageDom.getElementsByTagNameNS(outGenMessageDom.getNamespaceURI(), "Body").item(0).getChildNodes();
if (nodes != null) {
for (int i = 0; i < nodes.getLength(); i++) {
if (nodes.item(i).getNodeType() == Node.ELEMENT_NODE) {
outMsgElement = (Element) nodes.item(i);
break;
}
}
}
if (outMsgElement != null) {
// convert element to string and back to element to remove Owner Document
return DOMUtils.stringToDOM(DOMUtils.domToString(outMsgElement));
}
return null;
}
use of com.predic8.wsdl.Operation in project irontest by zheng-wang.
the class WSDLResource method getWSDLBindings.
@GET
@Path("/{wsdlUrl}/bindings")
public List<WSDLBinding> getWSDLBindings(@PathParam("wsdlUrl") String wsdlUrl) throws UnsupportedEncodingException {
List<WSDLBinding> result = new ArrayList<WSDLBinding>();
WSDLParser parser = new WSDLParser();
parser.setResourceResolver(new SSLTrustedExternalResolver());
Definitions definition = parser.parse(wsdlUrl);
for (Binding binding : definition.getBindings()) {
List<String> operationNames = new ArrayList<String>();
for (BindingOperation operation : binding.getOperations()) {
operationNames.add(operation.getName());
}
result.add(new WSDLBinding(binding.getName(), operationNames));
}
return result;
}
Aggregations