/* */ public static QName getOperationQName( BindingOperation bindingOper, BindingEntry bEntry, SymbolTable symbolTable) /* */ { /* 813 */ Operation operation = bindingOper.getOperation(); /* 814 */ String operationName = operation.getName(); /* */ /* 821 */ if ((bEntry.getBindingStyle() == Style.DOCUMENT) && (symbolTable.isWrapped())) /* */ { /* 823 */ Input input = operation.getInput(); /* */ /* 825 */ if (input != null) { /* 826 */ Map parts = input.getMessage().getParts(); /* */ /* 828 */ if ((parts != null) && (!parts.isEmpty())) { /* 829 */ Iterator i = parts.values().iterator(); /* 830 */ Part p = (Part) i.next(); /* */ /* 832 */ return p.getElementName(); /* */ } /* */ } /* */ } /* */ /* 837 */ String ns = null; /* */ /* 842 */ BindingInput bindInput = bindingOper.getBindingInput(); /* */ /* 844 */ if (bindInput != null) { /* 845 */ Iterator it = bindInput.getExtensibilityElements().iterator(); /* */ /* 847 */ while (it.hasNext()) { /* 848 */ ExtensibilityElement elem = (ExtensibilityElement) it.next(); /* */ /* 850 */ if ((elem instanceof SOAPBody)) { /* 851 */ SOAPBody body = (SOAPBody) elem; /* */ /* 853 */ ns = body.getNamespaceURI(); /* 854 */ if ((bEntry.getInputBodyType(operation) != Use.ENCODED) || ((ns != null) && (ns.length() != 0))) break; /* 855 */ log.warn( Messages.getMessage( "badNamespaceForOperation00", bEntry.getName(), operation.getName())); break; /* */ } /* */ /* 861 */ if ((elem instanceof MIMEMultipartRelated)) { /* 862 */ Object part = null; /* 863 */ MIMEMultipartRelated mpr = (MIMEMultipartRelated) elem; /* */ /* 865 */ List l = mpr.getMIMEParts(); /* */ /* 868 */ int j = 0; /* 869 */ while ((l != null) && (j < l.size()) && (part == null)) /* */ { /* 871 */ MIMEPart mp = (MIMEPart) l.get(j); /* */ /* 873 */ List ll = mp.getExtensibilityElements(); /* */ /* 876 */ int k = 0; /* 877 */ for (; (ll != null) && (k < ll.size()) && (part == null); k++) { /* 878 */ part = ll.get(k); /* */ /* 880 */ if ((part instanceof SOAPBody)) { /* 881 */ SOAPBody body = (SOAPBody) part; /* */ /* 883 */ ns = body.getNamespaceURI(); /* 884 */ if ((bEntry.getInputBodyType(operation) != Use.ENCODED) || ((ns != null) && (ns.length() != 0))) break; /* 885 */ log.warn( Messages.getMessage( "badNamespaceForOperation00", bEntry.getName(), operation.getName())); break; /* */ } /* */ /* 892 */ part = null; /* */ } /* 870 */ j++; /* */ } /* */ /* */ } /* 896 */ else if ((elem instanceof UnknownExtensibilityElement)) /* */ { /* 899 */ UnknownExtensibilityElement unkElement = (UnknownExtensibilityElement) elem; /* */ /* 901 */ QName name = unkElement.getElementType(); /* */ /* 904 */ if ((name.getNamespaceURI().equals("http://schemas.xmlsoap.org/wsdl/soap12/")) && (name.getLocalPart().equals("body"))) /* */ { /* 906 */ ns = unkElement.getElement().getAttribute("namespace"); /* */ } /* */ /* */ } /* */ /* */ } /* */ /* */ } /* */ /* 916 */ if (ns == null) { /* 917 */ ns = ""; /* */ } /* */ /* 920 */ return new QName(ns, operationName); /* */ }
private void initializeMessage( SoapBindingInfo bi, BindingOperationInfo boi, BindingMessageInfo bmsg) { MessageInfo msg = bmsg.getMessageInfo(); List<MessagePartInfo> messageParts = new ArrayList<MessagePartInfo>(); messageParts.addAll(msg.getMessageParts()); List<SoapHeader> headers = SOAPBindingUtil.getSoapHeaders(bmsg.getExtensors(ExtensibilityElement.class)); if (headers != null) { for (SoapHeader header : headers) { SoapHeaderInfo headerInfo = new SoapHeaderInfo(); headerInfo.setUse(header.getUse()); if (StringUtils.isEmpty(header.getPart())) { throw new RuntimeException( "Problem with WSDL: soap:header element in operation " + boi.getName().getLocalPart() + " does not specify a part."); } MessagePartInfo part = msg.getMessagePart(new QName(msg.getName().getNamespaceURI(), header.getPart())); if (part != null && header.getMessage() != null && !part.getMessageInfo().getName().equals(header.getMessage())) { part = null; // out of band, let's find it for (MessagePartInfo mpi : msg.getOutOfBandParts()) { if (mpi.getName().getLocalPart().equals(header.getPart()) && mpi.getMessageInfo().getName().equals(header.getMessage())) { part = mpi; } } } if (part != null) { headerInfo.setPart(part); messageParts.remove(part); bmsg.addExtensor(headerInfo); } } // Exclude the header parts from the message part list. bmsg.setMessageParts(messageParts); } SoapBodyInfo bodyInfo = new SoapBodyInfo(); SoapBody soapBody = SOAPBindingUtil.getSoapBody(bmsg.getExtensors(ExtensibilityElement.class)); List<?> parts = null; if (soapBody == null) { MIMEMultipartRelated mmr = bmsg.getExtensor(MIMEMultipartRelated.class); if (mmr != null) { parts = mmr.getMIMEParts(); } } else { bmsg.addExtensor(soapBody); bodyInfo.setUse(soapBody.getUse()); parts = soapBody.getParts(); } // Initialize the body parts. List<MessagePartInfo> attParts = null; if (parts != null) { List<MessagePartInfo> bodyParts = new ArrayList<MessagePartInfo>(); for (Iterator<?> itr = parts.iterator(); itr.hasNext(); ) { Object part = itr.next(); if (part instanceof MIMEPart) { MIMEPart mpart = (MIMEPart) part; attParts = handleMimePart(mpart, attParts, msg, bmsg, bodyParts, messageParts); } else { addSoapBodyPart(msg, bodyParts, (String) part); } } bodyInfo.setParts(bodyParts); bodyInfo.setAttachments(attParts); } else { bodyInfo.setParts(messageParts); } bmsg.addExtensor(bodyInfo); }