protected void addMessageFromBinding(ExtensibilityElement ext, BindingOperationInfo bop, boolean isInput) { SoapHeader header = SOAPBindingUtil.getSoapHeader(ext); ServiceInfo serviceInfo = bop.getBinding().getService(); if (header != null && header.getMessage() == null) { throw new RuntimeException("Problem with WSDL: soap:header element" + " for operation " + bop.getName() + " under binding " + bop.getBinding().getName() + " does not contain a valid message attribute."); } if (header != null && serviceInfo.getMessage(header.getMessage()) == null) { Definition def = (Definition)serviceInfo.getProperty(WSDLServiceBuilder.WSDL_DEFINITION); SchemaCollection schemas = serviceInfo.getXmlSchemaCollection(); if (def != null && schemas != null) { QName qn = header.getMessage(); javax.wsdl.Message msg = findMessage(qn, def); if (msg != null) { addOutOfBandParts(bop, msg, schemas, isInput, header.getPart()); serviceInfo.refresh(); } else { throw new RuntimeException("Problem with WSDL: soap:header element" + " for operation " + bop.getName() + " is referring to an undefined wsdl:message element: " + qn); } } } } private javax.wsdl.Message findMessage(QName qn, Definition def) {
headerInfo.setUse(header.getUse()); if (StringUtils.isEmpty(header.getPart())) { throw new RuntimeException("Problem with WSDL: soap:header element in operation " + bmsg.getBindingOperation().getName().getLocalPart() header.getPart())); if (mpi != null && header.getMessage() != null && !mpi.getMessageInfo().getName().equals(header.getMessage())) { mpi = null; if (mpi2.getName().getLocalPart().equals(header.getPart()) && mpi2.getMessageInfo().getName().equals(header.getMessage())) { mpi = mpi2;
private boolean isOutOfBandHeader(BindingMessageInfo bmi, ExtensibilityElement ext) { SoapHeader soapHeader = SOAPBindingUtil.getSoapHeader(ext); return soapHeader.getMessage() != null && !bmi.getMessageInfo().getName().equals(soapHeader.getMessage()); }
private boolean isHeaderPart(final BindingOperation bop, final Part part) { QName elementName = part.getElementName(); if (elementName != null) { String partName = elementName.getLocalPart(); SoapHeader inSoapHeader = SOAPBindingUtil.getBindingInputSOAPHeader(bop); if (inSoapHeader != null) { return partName.equals(inSoapHeader.getPart()); } SoapHeader outSoapHeader = SOAPBindingUtil.getBindingOutputSOAPHeader(bop); if (outSoapHeader != null) { return partName.equals(outSoapHeader.getPart()); } } return false; }
BindingInput.class, isSoap12); soapHeader.setMessage(b.getInput().getMessageInfo().getName()); soapHeader.setPart(headerInfo.getPart().getName().getLocalPart()); soapHeader.setUse("literal"); bodyParts.remove(headerInfo.getPart().getName().getLocalPart()); headerInfo.getPart().setProperty(HEADER, true); BindingOutput.class, isSoap12); soapHeader.setMessage(b.getOutput().getMessageInfo().getName()); soapHeader.setPart(headerInfo.getPart().getName().getLocalPart()); soapHeader.setUse("literal"); bodyParts.remove(headerInfo.getPart().getName().getLocalPart()); b.getOutput().addExtensor(soapHeader);
private boolean checkR2716(final BindingOperation bop) { SoapBody inSoapBody = SOAPBindingUtil.getBindingInputSOAPBody(bop); SoapBody outSoapBody = SOAPBindingUtil.getBindingOutputSOAPBody(bop); if (inSoapBody != null && !StringUtils.isEmpty(inSoapBody.getNamespaceURI()) || outSoapBody != null && !StringUtils.isEmpty(outSoapBody.getNamespaceURI())) { addErrorMessage(getErrorPrefix("WSI-BP-1.0 R2716") + "Operation '" + bop.getName() + "' soapBody MUST NOT have namespace attribute"); return false; } SoapHeader inSoapHeader = SOAPBindingUtil.getBindingInputSOAPHeader(bop); SoapHeader outSoapHeader = SOAPBindingUtil.getBindingOutputSOAPHeader(bop); if (inSoapHeader != null && !StringUtils.isEmpty(inSoapHeader.getNamespaceURI()) || outSoapHeader != null && !StringUtils.isEmpty(outSoapHeader.getNamespaceURI())) { addErrorMessage(getErrorPrefix("WSI-BP-1.0 R2716") + "Operation '" + bop.getName() + "' soapHeader MUST NOT have namespace attribute"); return false; } List<SoapFault> soapFaults = SOAPBindingUtil.getBindingOperationSoapFaults(bop); for (SoapFault fault : soapFaults) { if (!StringUtils.isEmpty(fault.getNamespaceURI())) { addErrorMessage(getErrorPrefix("WSI-BP-1.0 R2716") + "Operation '" + bop.getName() + "' soapFault MUST NOT have namespace attribute"); return false; } } return true; }
headerInfo.setUse(header.getUse()); if (StringUtils.isEmpty(header.getPart())) { throw new RuntimeException("Problem with WSDL: soap:header element in operation " + bmsg.getBindingOperation().getName().getLocalPart() header.getPart())); if (mpi != null && header.getMessage() != null && !mpi.getMessageInfo().getName().equals(header.getMessage())) { mpi = null; if (mpi2.getName().getLocalPart().equals(header.getPart()) && mpi2.getMessageInfo().getName().equals(header.getMessage())) { mpi = mpi2;
SoapHeader soapHeader = SOAPBindingUtil.getBindingInputSOAPHeader(bop); boundPartSize = soapHeader != null && soapHeader.getMessage().equals( operation.getInput().getMessage() .getQName())
private boolean isHeaderPart(final BindingOperation bop, final Part part) { QName elementName = part.getElementName(); if (elementName != null) { String partName = elementName.getLocalPart(); SoapHeader inSoapHeader = SOAPBindingUtil.getBindingInputSOAPHeader(bop); if (inSoapHeader != null) { return partName.equals(inSoapHeader.getPart()); } SoapHeader outSoapHeader = SOAPBindingUtil.getBindingOutputSOAPHeader(bop); if (outSoapHeader != null) { return partName.equals(outSoapHeader.getPart()); } } return false; }
BindingInput.class, isSoap12); soapHeader.setMessage(b.getInput().getMessageInfo().getName()); soapHeader.setPart(headerInfo.getPart().getName().getLocalPart()); soapHeader.setUse("literal"); bodyParts.remove(headerInfo.getPart().getName().getLocalPart()); headerInfo.getPart().setProperty(HEADER, true); BindingOutput.class, isSoap12); soapHeader.setMessage(b.getOutput().getMessageInfo().getName()); soapHeader.setPart(headerInfo.getPart().getName().getLocalPart()); soapHeader.setUse("literal"); bodyParts.remove(headerInfo.getPart().getName().getLocalPart()); b.getOutput().addExtensor(soapHeader);
private boolean checkR2716(final BindingOperation bop) { SoapBody inSoapBody = SOAPBindingUtil.getBindingInputSOAPBody(bop); SoapBody outSoapBody = SOAPBindingUtil.getBindingOutputSOAPBody(bop); if (inSoapBody != null && !StringUtils.isEmpty(inSoapBody.getNamespaceURI()) || outSoapBody != null && !StringUtils.isEmpty(outSoapBody.getNamespaceURI())) { addErrorMessage(getErrorPrefix("WSI-BP-1.0 R2716") + "Operation '" + bop.getName() + "' soapBody MUST NOT have namespace attribute"); return false; } SoapHeader inSoapHeader = SOAPBindingUtil.getBindingInputSOAPHeader(bop); SoapHeader outSoapHeader = SOAPBindingUtil.getBindingOutputSOAPHeader(bop); if (inSoapHeader != null && !StringUtils.isEmpty(inSoapHeader.getNamespaceURI()) || outSoapHeader != null && !StringUtils.isEmpty(outSoapHeader.getNamespaceURI())) { addErrorMessage(getErrorPrefix("WSI-BP-1.0 R2716") + "Operation '" + bop.getName() + "' soapHeader MUST NOT have namespace attribute"); return false; } List<SoapFault> soapFaults = SOAPBindingUtil.getBindingOperationSoapFaults(bop); for (SoapFault fault : soapFaults) { if (!StringUtils.isEmpty(fault.getNamespaceURI())) { addErrorMessage(getErrorPrefix("WSI-BP-1.0 R2716") + "Operation '" + bop.getName() + "' soapFault MUST NOT have namespace attribute"); return false; } } return true; }
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() header.getPart())); if (part != null && header.getMessage() != null && !part.getMessageInfo().getName().equals(header.getMessage())) { part = null; if (mpi.getName().getLocalPart().equals(header.getPart()) && mpi.getMessageInfo().getName().equals(header.getMessage())) { part = mpi;
protected void addMessageFromBinding(ExtensibilityElement ext, BindingOperationInfo bop, boolean isInput) { SoapHeader header = SOAPBindingUtil.getSoapHeader(ext); ServiceInfo serviceInfo = bop.getBinding().getService(); if (header != null && header.getMessage() == null) { throw new RuntimeException("Problem with WSDL: soap:header element" + " for operation " + bop.getName() + " under binding " + bop.getBinding().getName() + " does not contain a valid message attribute."); } if (header != null && serviceInfo.getMessage(header.getMessage()) == null) { Definition def = (Definition)serviceInfo.getProperty(WSDLServiceBuilder.WSDL_DEFINITION); SchemaCollection schemas = serviceInfo.getXmlSchemaCollection(); if (def != null && schemas != null) { QName qn = header.getMessage(); javax.wsdl.Message msg = findMessage(qn, def); if (msg != null) { addOutOfBandParts(bop, msg, schemas, isInput, header.getPart()); serviceInfo.refresh(); } else { throw new RuntimeException("Problem with WSDL: soap:header element" + " for operation " + bop.getName() + " is referring to an undefined wsdl:message element: " + qn); } } } } private javax.wsdl.Message findMessage(QName qn, Definition def) {
SoapHeader soapHeader = SOAPBindingUtil.getBindingInputSOAPHeader(bop); boundPartSize = soapHeader != null && soapHeader.getMessage().equals( operation.getInput().getMessage() .getQName())
private void processSoapHeader(JavaMethod jm, BindingOperationInfo operation, ExtensibilityElement ext) { if (isOutOfBandHeader(operation.getInput(), ext)) { return; } SoapHeader soapHeader = SOAPBindingUtil.getSoapHeader(ext); for (JavaParameter parameter : jm.getParameters()) { if (soapHeader.getPart().equals(parameter.getPartName())) { setParameterAsHeader(parameter); break; } } }
if (inSoapHeader != null && !StringUtils.isEmpty(inSoapHeader.getNamespaceURI()) || outSoapHeader != null && !StringUtils.isEmpty(outSoapHeader.getNamespaceURI())) { addErrorMessage(getErrorPrefix("WSI-BP-1.0 R2726") + "Operation '" + bop.getName() + "' soapHeader MUST NOT have namespace attribute");
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() header.getPart())); if (part != null && header.getMessage() != null && !part.getMessageInfo().getName().equals(header.getMessage())) { part = null; if (mpi.getName().getLocalPart().equals(header.getPart()) && mpi.getMessageInfo().getName().equals(header.getMessage())) { part = mpi;
headerMessage = header.getMessage(); if (header.getPart().length() > 0) { containParts = true; headerMessage = header.getMessage(); if (header.getPart().length() > 0) { containParts = true;
SoapHeader soapHeader = SOAPBindingUtil.getBindingOutputSOAPHeader(bop); boundPartSize = soapHeader != null && soapHeader.getMessage().equals( operation.getOutput().getMessage() .getQName())
private static Set<QName> getHeaderQNames(BindingMessageInfo bmi) { Set<QName> set = new HashSet<>(); List<MessagePartInfo> mps = bmi.getMessageInfo().getMessageParts(); List<ExtensibilityElement> extList = bmi.getExtensors(ExtensibilityElement.class); if (extList != null) { for (ExtensibilityElement ext : extList) { if (SOAPBindingUtil.isSOAPHeader(ext)) { SoapHeader header = SOAPBindingUtil.getSoapHeader(ext); String pn = header.getPart(); for (MessagePartInfo mpi : mps) { if (pn.equals(mpi.getName().getLocalPart())) { if (mpi.isElement()) { set.add(mpi.getElementQName()); } else { set.add(mpi.getTypeQName()); } break; } } } } } return set; }