throws WSDLException BindingOperation bindingOperation = def.createBindingOperation(); bindingOperation.setName(name); bindingOperation.setDocumentationElement(tempEl); bindingOperation.setBindingInput(parseBindingInput(tempEl, def)); bindingOperation.setBindingOutput(parseBindingOutput(tempEl, def)); bindingOperation.addBindingFault(parseBindingFault(tempEl, def)); bindingOperation.addExtensibilityElement( parseExtensibilityElement(BindingOperation.class, tempEl, def)); BindingInput bindingInput = bindingOperation.getBindingInput(); BindingOutput bindingOutput = bindingOperation.getBindingOutput(); String inputName = (bindingInput != null ? (bindingInput.getName() != null ? bindingInput.getName() : Constants.NONE) : null); String outputName = (bindingOutput != null Input input = def.createInput(); Output output = def.createOutput(); bindingOperation.setOperation(op);
bindingOperation.getName(), pw); printDocumentation(bindingOperation.getDocumentationElement(), def, pw); List extElements = bindingOperation.getExtensibilityElements(); pw); printBindingInput(bindingOperation.getBindingInput(), def, pw); printBindingOutput(bindingOperation.getBindingOutput(), def, pw); printBindingFaults(bindingOperation.getBindingFaults(), def, pw);
BindingOperation bindingOperation = binding.getBindingOperation( operationName, null, null ); if ( bindingOperation == null ) { throw new IllegalArgumentException( "Can not find operation: " + operationName ); BindingInput bindingInput = bindingOperation.getBindingInput(); if ( bindingInput != null ) { headers.addAll( WsdlUtils.findExtensibilityElements( bindingInput, SOAP_HEADER_ELEMENT_NAME ) ); BindingOutput bindingOutput = bindingOperation.getBindingOutput(); if ( bindingOutput != null ) { headers.addAll( WsdlUtils.findExtensibilityElements( bindingOutput, SOAP_HEADER_ELEMENT_NAME ) );
List ops = port.getBinding().getBindingOperations(); Iterator opIt = ops.iterator(); while (opIt.hasNext()) { BindingOperation op = (BindingOperation)opIt.next(); BindingInput bindingInput = op.getBindingInput(); List elements = bindingInput.getExtensibilityElements(); QName qn = new QName(def.getTargetNamespace(), op.getName()); for (Iterator i = elements.iterator(); i.hasNext();) { Object element = i.next(); SOAPBody body = (SOAPBody)element; if (body.getNamespaceURI() != null) { qn = new QName(body.getNamespaceURI(), op.getName()); DataBindingCallback.Mode.PARTS); callbackMap.put(qn, cb); if (!"".equals(cb.getRequestWrapperQName().getLocalPart())) { callbackMap.put(cb.getRequestWrapperQName(), cb);
protected void buildBindingOperation(Definition def, Binding binding, Collection<BindingOperationInfo> bindingOperationInfos) { BindingOperation bindingOperation = null; for (BindingOperationInfo bindingOperationInfo : bindingOperationInfos) { bindingOperation = def.createBindingOperation(); addDocumentation(bindingOperation, bindingOperationInfo.getDocumentation()); bindingOperation.setName(bindingOperationInfo.getName().getLocalPart()); for (Operation operation : CastUtils.cast(binding.getPortType().getOperations(), Operation.class)) { if (operation.getName().equals(bindingOperation.getName())) { bindingOperation.setOperation(operation); break; } } buildBindingInput(def, bindingOperation, bindingOperationInfo.getInput()); buildBindingOutput(def, bindingOperation, bindingOperationInfo.getOutput()); buildBindingFault(def, bindingOperation, bindingOperationInfo.getFaults()); addExtensibilityAttributes(def, bindingOperation, bindingOperationInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingOperation, getWSDL11Extensors(bindingOperationInfo)); binding.addBindingOperation(bindingOperation); } }
protected void buildBindingInput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingInput bindingInput = null; if (bindingMessageInfo != null) { bindingInput = def.createBindingInput(); addDocumentation(bindingInput, bindingMessageInfo.getDocumentation()); bindingInput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingInput(bindingInput); addExtensibilityAttributes(def, bindingInput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingInput, getWSDL11Extensors(bindingMessageInfo)); } }
protected void buildBindingOutput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingOutput bindingOutput = null; if (bindingMessageInfo != null) { bindingOutput = def.createBindingOutput(); addDocumentation(bindingOutput, bindingMessageInfo.getDocumentation()); bindingOutput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingOutput(bindingOutput); addExtensibilityAttributes(def, bindingOutput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingOutput, getWSDL11Extensors(bindingMessageInfo)); } }
private BindingOperation addBindingOperation(Definition def, OperationImpl operation, DOMImplementation dImpl) { BindingOperation bindingOperation = def.createBindingOperation(); bindingOperation.setName(operation.getName()); SOAPOperation soapOperation = new SOAPOperationImpl(); bindingOperation.addExtensibilityElement(soapOperation); bindingOperation.setOperation(operation); Document doc = dImpl.createDocument(WSP_NAMESPACE, "Misc", null); UnknownExtensibilityElement exEle = new UnknownExtensibilityElement(); Element anonymousEle = doc.createElementNS("http://www.w3.org/2006/05/addressing/wsdl", "wsaw:Anonymous"); anonymousEle.appendChild(doc.createTextNode("optional")); exEle.setElement(anonymousEle); exEle.setElementType(new QName("http://www.w3.org/2006/05/addressing/wsdl", "wsaw:Anonymous")); bindingOperation.addExtensibilityElement(exEle); return bindingOperation; }
/** * This method will process a WSDL Binding and build AttachmentDescription objects if the * WSDL dicatates attachments. */ public static void getAttachmentFromBinding(OperationDescriptionImpl opDesc, Binding binding) { if (binding != null) { Iterator bindingOpIter = binding.getBindingOperations().iterator(); while (bindingOpIter.hasNext()) { BindingOperation bindingOp = (BindingOperation) bindingOpIter.next(); // found the BindingOperation that matches the current OperationDescription if (bindingOp.getName().equals(opDesc.getName().getLocalPart())) { if (bindingOp.getBindingInput() != null) { if (log.isDebugEnabled()) { log.debug("Processing binding opertion input"); } processBindingForMIME(bindingOp.getBindingInput().getExtensibilityElements(), opDesc, bindingOp.getOperation(), true); } if (bindingOp.getBindingOutput() != null) { if (log.isDebugEnabled()) { log.debug("Processing binding output"); } processBindingForMIME(bindingOp.getBindingOutput().getExtensibilityElements(), opDesc, bindingOp.getOperation(), false); } } } } }
public Message generateInputMessage(Operation operation, BindingOperation bindingOperation) { Message msg = definition.createMessage(); QName msgName; if (!mapper.isDefaultMapping()) { //mangle the message name //REVISIT, do we put in the entire scope for mangling msgName = new QName(definition.getTargetNamespace(), getScope().tail() + "." + operation.getName()); } else { msgName = new QName(definition.getTargetNamespace(), operation.getName()); } msg.setQName(msgName); msg.setUndefined(false); String inputName = operation.getName() + REQUEST_SUFFIX; Input input = definition.createInput(); input.setName(inputName); input.setMessage(msg); BindingInput bindingInput = definition.createBindingInput(); bindingInput.setName(inputName); bindingOperation.setBindingInput(bindingInput); operation.setInput(input); definition.addMessage(msg); return msg; }
public Message generateOutputMessage(Operation operation, BindingOperation bindingOperation) { Message msg = definition.createMessage(); QName msgName; if (!mapper.isDefaultMapping()) { //mangle the message name //REVISIT, do we put in the entire scope for mangling msgName = new QName(definition.getTargetNamespace(), getScope().tail() + "." + operation.getName() + RESPONSE_SUFFIX); } else { msgName = new QName(definition.getTargetNamespace(), operation.getName() + RESPONSE_SUFFIX); } msg.setQName(msgName); msg.setUndefined(false); String outputName = operation.getName() + RESPONSE_SUFFIX; Output output = definition.createOutput(); output.setName(outputName); output.setMessage(msg); BindingOutput bindingOutput = definition.createBindingOutput(); bindingOutput.setName(outputName); bindingOperation.setBindingOutput(bindingOutput); operation.setOutput(output); definition.addMessage(msg); return msg; }
@SuppressWarnings("unchecked") private boolean checkXMLFormat(Binding binding) { List<BindingOperation> bos = binding.getBindingOperations(); boolean result = true; boolean needRootNode = false; for (BindingOperation bo : bos) { Operation op = binding.getPortType().getOperation(bo.getName(), null, null); needRootNode = false; if (op.getInput().getMessage().getParts().size() == 0 || op.getInput().getMessage().getParts().size() > 1) { needRootNode = true; String path = "Binding(" + binding.getQName().getLocalPart() + "):BindingOperation(" + bo.getName() + ")"; Iterator itIn = bo.getBindingInput().getExtensibilityElements().iterator(); if (findXMLFormatRootNode(itIn, bo, path + "-input")) { if (op.getOutput().getMessage().getParts().size() == 0 || op.getOutput().getMessage().getParts().size() > 1) { needRootNode = true; Iterator itOut = bo.getBindingInput().getExtensibilityElements().iterator(); result = result && findXMLFormatRootNode(itOut, bo, path + "-Output");
public QName getOperationQname(String operationName) throws UnknownOperationException { if (getStyle().equals("document")) { try { // Get the QName of the first element of the input message return ((Part) getBindingOperation(operationName) .getOperation().getInput().getMessage() .getOrderedParts(null).get(0)).getElementName(); } catch (RuntimeException e) { logger.warn("Could not find qname of message for operation " + operationName, e); String ns = getDefinition().getTargetNamespace(); return new QName(ns, operationName); } } else { String ns = getOperationNamespaceURI(operationName); return new QName(ns, operationName); } }
javax.wsdl.BindingOperation wbindOp = def.createBindingOperation(); soapOp.setSoapActionURI(getSoapAction(op)); BindingInput bindIn = def.createBindingInput(); bindIn.setName( op.getInputMessage().getName().getLocalPart() ); bindIn.addExtensibilityElement( body ); wbindOp.setBindingInput( bindIn ); if (wsdlOp.getOutput() != null) BindingOutput bindOut = builder.getDefinition().createBindingOutput(); bindOut.setName( wsdlOp.getOutput().getName() ); bindOut.addExtensibilityElement( body ); wbindOp.setBindingOutput( bindOut ); Map faults = wsdlOp.getFaults(); if (faults != null) wbindOp.addBindingFault(bindingFault); wbindOp.setName( wsdlOp.getName() ); wbindOp.setOperation( wsdlOp ); wbindOp.addExtensibilityElement( soapOp );
WSDLFactory factory = WSDLFactory.newInstance(); WSDLReader reader = factory.newWSDLReader(); Definition definition = reader.readWSDL("http://www.w3schools.com/webservices/tempconvert.asmx?wsdl"); Binding binding = definition.getBinding(new QName("http://tempuri.org/", "TempConvertSoap")); BindingOperation operation = binding.getBindingOperation("CelsiusToFahrenheit", null, null); List extensions = operation.getExtensibilityElements(); if (extensions != null) { for (int i = 0; i < extensions.size(); i++) { ExtensibilityElement extElement = (ExtensibilityElement) extensions.get(i); // .... if (extElement instanceof SOAPOperation) { SOAPOperation soapOp = (SOAPOperation) extElement; System.out.println(soapOp.getSoapActionURI()); } // .... } }
public WSDLAwareMessage parseRequest() throws AxisFault { /** * I assume that local part of the Axis Operation's name is always equal to * the operation name in the WSDL. */ BindingOperation bindingOp = wsdlBinding.getBindingOperation( wsdlBinding.getPortType().getOperation( inMessageCtx.getAxisOperation().getName().getLocalPart(), null, null).getName(), null, null); if (bindingOp == null) { throw new AxisFault("WSDL binding operation not found for service: " + serviceName.getLocalPart() + " port: " + portName); } BindingInput bindingInput = bindingOp.getBindingInput(); if (bindingInput == null) { throw new AxisFault("BindingInput not found for service: " + serviceName.getLocalPart() + " port: " + portName); } return processMessageParts(bindingInput); }
public boolean isValid() { Collection<Binding> bindings = CastUtils.cast(def.getAllBindings().values()); for (Binding binding : bindings) { uniqueBodyPartsMap = new HashMap<>(); List<BindingOperation> ops = CastUtils.cast(binding.getBindingOperations()); for (BindingOperation op : ops) { Operation operation = op.getOperation(); if (operation != null && operation.getInput() != null) { Message inMessage = operation.getInput().getMessage(); BindingInput bin = op.getBindingInput(); Set<String> headers = new HashSet<>(); if (bin != null) { List<ExtensibilityElement> lst = CastUtils.cast(bin.getExtensibilityElements()); for (ExtensibilityElement ext : lst) { if (!(ext instanceof SOAPHeader)) { if (!header.getMessage().equals(inMessage.getQName())) { continue; if (inMessage != null && !isUniqueBodyPart(operation.getName(), inMessage, headers, binding.getQName())) { return false;
@SuppressWarnings("unchecked") private void addBindingOperation() throws ToolException { List<Operation> ops = portType.getOperations(); for (Operation op : ops) { BindingOperation bindingOperation = wsdlDefinition.createBindingOperation(); bindingOperation.setName(op.getName()); if (op.getInput() != null) { bindingOperation.setBindingInput(getBindingInput(op.getInput(), op.getName())); } if (op.getOutput() != null) { bindingOperation.setBindingOutput(getBindingOutput(op.getOutput(), op.getName())); } if (op.getFaults() != null && op.getFaults().size() > 0) { addXMLFaults(op, bindingOperation); } bindingOperation.setOperation(op); binding.addBindingOperation(bindingOperation); } }
for (Operation op : ops) { try { BindingOperation bindingOperation = definition.createBindingOperation(); addCorbaOperationExtElement(bindingOperation, op); bindingOperation.setName(op.getName()); if (op.getInput() != null) { BindingInput bindingInput = definition.createBindingInput(); bindingInput.setName(op.getInput().getName()); bindingOperation.setBindingInput(bindingInput); if (op.getOutput() != null) { BindingOutput bindingOutput = definition.createBindingOutput(); bindingOutput.setName(op.getOutput().getName()); bindingOperation.setBindingOutput(bindingOutput); BindingFault bindingFault = definition.createBindingFault(); bindingFault.setName(fault.getName()); bindingOperation.addBindingFault(bindingFault); bindingOperation.setOperation(op); binding.addBindingOperation(bindingOperation); } catch (Exception ex) { LOG.warning("Operation " + op.getName() + " not mapped to CORBA binding.");
private BindingOperation generateCorbaBindingOperation(Binding wsdlBinding, Operation op, OperationType corbaOp) { BindingInput bindingInput = definition.createBindingInput(); bindingInput.setName(op.getInput().getName()); BindingOutput bindingOutput = definition.createBindingOutput(); bindingOutput.setName(op.getOutput().getName()); BindingOperation bindingOperation = definition.createBindingOperation(); bindingOperation.addExtensibilityElement((ExtensibilityElement)corbaOp); bindingOperation.setOperation(op); bindingOperation.setName(op.getName()); bindingOperation.setBindingInput(bindingInput); bindingOperation.setBindingOutput(bindingOutput); binding.addBindingOperation(bindingOperation); return bindingOperation; }