private void validateFaultDetail(Element detail, Schema schema, BindingOperationInfo bop) throws Exception { if (detail != null) { Element el = DOMUtils.getFirstElement(detail); while (el != null) { QName qn = DOMUtils.getElementQName(el); for (BindingFaultInfo bfi : bop.getFaults()) { if (bfi.getFaultInfo().getMessagePartByIndex(0).getConcreteName().equals(qn)) { //Found a fault with the correct QName, we can validate it schema.newValidator().validate(new DOMSource(DOMUtils.getDomElement(el))); } } el = DOMUtils.getNextElement(el); } } } private void validateFault(SoapMessage message, SOAPFault fault, BindingOperationInfo bop) {
Class<?> c = fi.getFaultInfo().getProperty(Class.class.getName(), Class.class); if (c != null && c.isInstance(ex)) { return ex;
@Override public FaultInfo getFaultForClass(BindingOperationInfo op, Class class1) { for (BindingFaultInfo bfi : op.getFaults()) { FaultInfo faultInfo = bfi.getFaultInfo(); Class<?> c = (Class)faultInfo.getProperty(Class.class.getName()); if (c != null && c.isAssignableFrom(class1)) { return faultInfo; } } return null; }
/** * Find the correct Fault part for a particular exception. * * @param op * @param class1 */ public FaultInfo getFaultForClass(BindingOperationInfo op, Class<?> class1) { FaultInfo selectedFaultInfo = null; Class<?> selectedFaultInfoClass = null; for (BindingFaultInfo bfi : op.getFaults()) { FaultInfo faultInfo = bfi.getFaultInfo(); Class<?> c = (Class<?>)faultInfo.getProperty(Class.class.getName()); if (c != null && c.isAssignableFrom(class1) && (selectedFaultInfo == null || (selectedFaultInfoClass != null && selectedFaultInfoClass.isAssignableFrom(c)))) { selectedFaultInfo = faultInfo; selectedFaultInfoClass = c; } } return selectedFaultInfo; } }
/** * Find the correct Fault part for a particular exception. * * @param op * @param class1 */ public FaultInfo getFaultForClass(BindingOperationInfo op, Class<?> class1) { FaultInfo selectedFaultInfo = null; Class<?> selectedFaultInfoClass = null; for (BindingFaultInfo bfi : op.getFaults()) { FaultInfo faultInfo = bfi.getFaultInfo(); Class<?> c = (Class<?>)faultInfo.getProperty(Class.class.getName()); if (c != null && c.isAssignableFrom(class1) && (selectedFaultInfo == null || (selectedFaultInfoClass != null && selectedFaultInfoClass.isAssignableFrom(c)))) { selectedFaultInfo = faultInfo; selectedFaultInfoClass = c; } } return selectedFaultInfo; } }
/** * Find the correct Fault part for a particular exception. * * @param op * @param class1 */ public FaultInfo getFaultForClass(BindingOperationInfo op, Class<?> class1) { FaultInfo selectedFaultInfo = null; Class<?> selectedFaultInfoClass = null; for (BindingFaultInfo bfi : op.getFaults()) { FaultInfo faultInfo = bfi.getFaultInfo(); Class<?> c = (Class<?>)faultInfo.getProperty(Class.class.getName()); if (c != null && c.isAssignableFrom(class1) && (selectedFaultInfo == null || selectedFaultInfoClass.isAssignableFrom(c))) { selectedFaultInfo = faultInfo; selectedFaultInfoClass = c; } } return selectedFaultInfo; } }
private boolean checkBindingOperationFault(BindingFaultInfo bfi) { return (bfi.getFaultInfo() != null) && (bfi.getFaultInfo().getFaultName() != null) && (bfi.getBindingOperation().getName() != null) && (bfi.getBindingOperation().getBinding() != null) && (bfi.getBindingOperation().getBinding().getName() != null) && wsdl11XPointer.matchesBindingOperationFault( bfi.getFaultInfo().getFaultName().getNamespaceURI(), bfi.getBindingOperation().getBinding().getName().getLocalPart(), bfi.getBindingOperation().getName().getLocalPart(), bfi.getFaultInfo().getFaultName().getLocalPart()); }
private BindingFaultInfo mapToWrappedBindingFaultInfo(BindingFaultInfo bfi) { BindingOperationInfo boi = bfi.getBindingOperation(); if (boi != null && boi.isUnwrapped()) { boi = boi.getWrappedOperation(); for (BindingFaultInfo bf2 : boi.getFaults()) { if (bf2.getFaultInfo().getName().equals(bfi.getFaultInfo().getName())) { return bf2; } } } return bfi; } public void setEffectiveServerFaultPolicy(EndpointInfo ei, BindingFaultInfo bfi, EffectivePolicy ep) {
private BindingFaultInfo mapToWrappedBindingFaultInfo(BindingFaultInfo bfi) { BindingOperationInfo boi = bfi.getBindingOperation(); if (boi != null && boi.isUnwrapped()) { boi = boi.getWrappedOperation(); for (BindingFaultInfo bf2 : boi.getFaults()) { if (bf2.getFaultInfo().getName().equals(bfi.getFaultInfo().getName())) { return bf2; } } } return bfi; } public void setEffectiveServerFaultPolicy(EndpointInfo ei, BindingFaultInfo bfi, EffectivePolicy ep) {
private boolean checkBindingOperationFault(BindingFaultInfo bfi) { return (bfi.getFaultInfo() != null) && (bfi.getFaultInfo().getFaultName() != null) && (bfi.getBindingOperation().getName() != null) && (bfi.getBindingOperation().getBinding() != null) && (bfi.getBindingOperation().getBinding().getName() != null) && wsdl11XPointer.matchesBindingOperationFault( bfi.getFaultInfo().getFaultName().getNamespaceURI(), bfi.getBindingOperation().getBinding().getName().getLocalPart(), bfi.getBindingOperation().getName().getLocalPart(), bfi.getFaultInfo().getFaultName().getLocalPart()); }
@Override public boolean appliesTo(BindingFaultInfo bfi) { if ((bfi == null) || (bfi.getFaultInfo() == null) || (bfi.getBindingOperation() == null)) { return false; } if (checkBindingOperationFault(bfi)) { return true; } return checkPortTypeOperationFault(bfi); }
@Override public boolean appliesTo(BindingFaultInfo bfi) { if ((bfi == null) || (bfi.getFaultInfo() == null) || (bfi.getBindingOperation() == null)) { return false; } if (checkBindingOperationFault(bfi)) { return true; } return checkPortTypeOperationFault(bfi); }
private void validateFaultDetail(Element detail, Schema schema, BindingOperationInfo bop) throws Exception { if (detail != null) { Element el = DOMUtils.getFirstElement(detail); while (el != null) { QName qn = DOMUtils.getElementQName(el); for (BindingFaultInfo bfi : bop.getFaults()) { if (bfi.getFaultInfo().getMessagePartByIndex(0).getConcreteName().equals(qn)) { //Found a fault with the correct QName, we can validate it schema.newValidator().validate(new DOMSource(DOMUtils.getDomElement(el))); } } el = DOMUtils.getNextElement(el); } } } private void validateFault(SoapMessage message, SOAPFault fault, BindingOperationInfo bop) {
private boolean checkPortTypeOperationFault(BindingFaultInfo bfi) { InterfaceInfo ini = null; if ((bfi.getBindingOperation() != null) && (bfi.getBindingOperation().getOperationInfo() != null)) { ini = bfi.getBindingOperation().getOperationInfo().getInterface(); } return (ini != null) && (ini.getName() != null) && (bfi.getBindingOperation().getName() != null) && (bfi.getFaultInfo().getFaultName() != null) && wsdl11XPointer.matchesPortTypeOperationFault( ini.getName().getNamespaceURI(), ini.getName().getLocalPart(), bfi.getBindingOperation().getName().getLocalPart(), bfi.getFaultInfo().getFaultName().getLocalPart()); }
private boolean checkPortTypeOperationFault(BindingFaultInfo bfi) { InterfaceInfo ini = null; if ((bfi.getBindingOperation() != null) && (bfi.getBindingOperation().getOperationInfo() != null)) { ini = bfi.getBindingOperation().getOperationInfo().getInterface(); } return (ini != null) && (ini.getName() != null) && (bfi.getBindingOperation().getName() != null) && (bfi.getFaultInfo().getFaultName() != null) && wsdl11XPointer.matchesPortTypeOperationFault( ini.getName().getNamespaceURI(), ini.getName().getLocalPart(), bfi.getBindingOperation().getName().getLocalPart(), bfi.getFaultInfo().getFaultName().getLocalPart()); }
protected void buildBindingFault(Definition def, BindingOperation bindingOperation, Collection<BindingFaultInfo> bindingFaultInfos) { BindingFault bindingFault = null; for (BindingFaultInfo bindingFaultInfo : bindingFaultInfos) { bindingFault = def.createBindingFault(); addDocumentation(bindingFault, bindingFaultInfo.getDocumentation()); bindingFault.setName(bindingFaultInfo.getFaultInfo().getFaultName().getLocalPart()); bindingOperation.addBindingFault(bindingFault); addExtensibilityAttributes(def, bindingFault, bindingFaultInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingFault, getWSDL11Extensors(bindingFaultInfo)); } }
protected void buildBindingFault(Definition def, BindingOperation bindingOperation, Collection<BindingFaultInfo> bindingFaultInfos) { BindingFault bindingFault = null; for (BindingFaultInfo bindingFaultInfo : bindingFaultInfos) { bindingFault = def.createBindingFault(); addDocumentation(bindingFault, bindingFaultInfo.getDocumentation()); bindingFault.setName(bindingFaultInfo.getFaultInfo().getFaultName().getLocalPart()); bindingOperation.addBindingFault(bindingFault); addExtensibilityAttributes(def, bindingFault, bindingFaultInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingFault, getWSDL11Extensors(bindingFaultInfo)); } }
protected void buildBindingFault(Definition def, BindingOperation bindingOperation, Collection<BindingFaultInfo> bindingFaultInfos) { BindingFault bindingFault = null; for (BindingFaultInfo bindingFaultInfo : bindingFaultInfos) { bindingFault = def.createBindingFault(); addDocumentation(bindingFault, bindingFaultInfo.getDocumentation()); bindingFault.setName(bindingFaultInfo.getFaultInfo().getFaultName().getLocalPart()); bindingOperation.addBindingFault(bindingFault); addExtensibilityAttributes(def, bindingFault, bindingFaultInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingFault, getWSDL11Extensors(bindingFaultInfo)); } }
public Policy getEffectivePolicy(BindingFaultInfo bfi, Message m) { ServiceInfo si = bfi.getBindingOperation().getBinding().getService(); DescriptionInfo di = si.getDescription(); Policy p = getElementPolicy(bfi, false, di); FaultInfo fi = bfi.getFaultInfo(); p = mergePolicies(p, getElementPolicy(fi, true, di)); Extensible ex = getMessageTypeInfo(fi.getName(), di); p = mergePolicies(p, getElementPolicy(ex, false, di)); return p; }
public Policy getEffectivePolicy(BindingFaultInfo bfi, Message m) { ServiceInfo si = bfi.getBindingOperation().getBinding().getService(); DescriptionInfo di = si.getDescription(); Policy p = getElementPolicy(bfi, false, di); FaultInfo fi = bfi.getFaultInfo(); p = mergePolicies(p, getElementPolicy(fi, true, di)); Extensible ex = getMessageTypeInfo(fi.getName(), di); p = mergePolicies(p, getElementPolicy(ex, false, di)); return p; }