private void setFaultDetail(MessageContext synCtx, SOAPFactory factory, SOAPFault fault) { if (faultDetail != null) { SOAPFaultDetail soapFaultDetail = factory.createSOAPFaultDetail(); soapFaultDetail.setText(faultDetail); fault.setDetail(soapFaultDetail); } else if (faultDetailExpr != null) { for (Object obj : list) { if (obj instanceof OMNode) { soapFaultDetail.addChild((OMNode) obj); soapFaultDetail.setText(faultDetailExpr.stringValueOf(synCtx)); SOAPFaultDetail soapFaultDetail = factory.createSOAPFaultDetail(); for (OMElement faultDetailElement : faultDetailElements) { soapFaultDetail.addChild(faultDetailElement.cloneOMElement()); fault.getDetail().detach();
/** * Gets a list of the detail entries in this <code>Detail</code> object. * * @return an <code>Iterator</code> object over the <code>DetailEntry</code> objects in this * <code>Detail</code> object */ public Iterator getDetailEntries() { final Iterator detailEntriesIter = omTarget.getChildElements(); Collection details = new ArrayList(); while (detailEntriesIter.hasNext()) { details.add(new DetailEntryImpl((OMElement)detailEntriesIter.next())); } return details.iterator(); }
private static Fault inferFault(Operation operation, SOAPFault flt) { if (flt.getDetail() == null) { return null; } if (flt.getDetail().getFirstElement() == null) { return null; } // The detail is a dummy <detail> node containing the interesting fault element QName elName = flt.getDetail().getFirstElement().getQName(); return WsdlUtils.inferFault(operation, elName); }
nioFaultMessageContext.setProperty( NhttpConstants.ERROR_EXCEPTION, exceptionToRaise); envelope.getBody().getFault().getDetail().setText( exceptionToRaise.toString()); } else { nioFaultMessageContext.setProperty( NhttpConstants.ERROR_DETAIL, errorMessage); envelope.getBody().getFault().getDetail().setText(errorMessage);
if (axisFault.getFaultDetailElement().getFirstElement() != null) { synCtx.setProperty(SynapseConstants.ERROR_DETAIL, axisFault.getFaultDetailElement() .getFirstElement()); } else { synCtx.setProperty(SynapseConstants.ERROR_DETAIL, axisFault.getFaultDetailElement().getText());
OMElement detail = details.next(); soapFaultDetail.addDetailEntry(detail.cloneOMElement()); soapFaultDetail.addDetailEntry(bodyContent); soapFault.setDetail(soapFaultDetail); soapFaultReason.setText(JBI_FAULT_STRING);
SOAPFaultDetail newSOAPFaultDetail = soap11Factory.createSOAPFaultDetail(newSOAPFault); Iterator<OMElement> iter = detail.getAllDetailEntries(); while (iter.hasNext()) { OMElement detailEntry = iter.next(); iter.remove(); newSOAPFaultDetail.addDetailEntry(detailEntry);
OMElement detailElement = (OMElement)i.next(); i.remove(); detail.addDetailEntry(detailElement); OMElement element = detail.getFirstElement(); if (element != null) { faultDetailString = element.getText();
public static void triggerInvalidRepresentationFault(MessageContext messageContext, String detail) throws AxisFault { QName faultCode = new QName( SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI, SOAP12Constants.FAULT_CODE_SENDER, SOAP12Constants.SOAP_DEFAULT_NAMESPACE_PREFIX); QName faultSubcode = new QName(WSTransferConstants.NS_URI_WXF, WSTransferConstants.FAULT_INVALID_REPRESENTATION, WSTransferConstants.ATTR_WXF); if (!messageContext.isSOAP11()) { SOAPFactory factory = OMAbstractFactory.getSOAP12Factory(); SOAPFaultDetail soapFaultDetail = factory.createSOAPFaultDetail(); OMElement faultDetailElement = factory.createOMElement(WSTransferConstants.FAULT_DATAIL, WSTransferConstants.NS_URI_WSMAN,WSTransferConstants.ATTR_WSMA); faultDetailElement.setText(detail); soapFaultDetail.addChild(faultDetailElement); messageContext.setProperty(SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, soapFaultDetail); } triggerAxisFault(messageContext, WSTransferConstants.INVALID_REPRESENTATION_DETAIL, detail , faultCode, faultSubcode, WSTransferConstants.FAULT_INVALID_REPRESENTATION_REASON); }
/** If exception detailElement is not there we will return null */ public Exception getException() throws OMException { SOAPFaultDetail detail = getDetail(); if (detail == null) { return null; } OMElement exceptionElement = getDetail().getFirstChildWithName( new QName(SOAPConstants.SOAP_FAULT_DETAIL_EXCEPTION_ENTRY)); if (exceptionElement != null && exceptionElement.getText() != null) { return new Exception(exceptionElement.getText()); } return null; }
envelope = factory.getDefaultFaultEnvelope(); SOAPFaultDetail detail = factory.createSOAPFaultDetail(); detail.setText(errorMessage); envelope.getBody().getFault().setDetail(detail); SOAPFaultReason reason = factory.createSOAPFaultReason();
if (axisFault.getFaultDetailElement().getFirstElement() != null) { synCtx.setProperty(SynapseConstants.ERROR_DETAIL, axisFault.getFaultDetailElement().getFirstElement()); } else { synCtx.setProperty(SynapseConstants.ERROR_DETAIL, axisFault.getFaultDetailElement().getText());
/** * Crete SOAP Fault from fault information returned from ODE. * * @param bpelMessageContext DTO containing information on current messageflow. * @param odeMessageContext ODE MyRoleMessageExchange containing information on current process * invocation. * @return SOAPFault instance * @throws AxisFault in case of a error while creating SOAP Fault. */ public static SOAPFault createSoapFault(final BPELMessageContext bpelMessageContext, final MessageExchange odeMessageContext) throws AxisFault { SOAPFactory soapFactory = bpelMessageContext.getSoapFactoryForCurrentMessageFlow(); OMElement detail = buildSoapDetail(bpelMessageContext, odeMessageContext); SOAPFault fault = soapFactory.createSOAPFault(); SOAPFaultCode code = soapFactory.createSOAPFaultCode(fault); code.setText(new QName(Namespaces.SOAP_ENV_NS, "Server")); SOAPFaultReason reason = soapFactory.createSOAPFaultReason(fault); reason.setText(odeMessageContext.getFault()); SOAPFaultDetail soapDetail = soapFactory.createSOAPFaultDetail(fault); if (detail != null) { soapDetail.addDetailEntry(detail); } return fault; }
SOAPFaultDetail newSOAPFaultDetail = soap12Factory.createSOAPFaultDetail(newSOAPFault); Iterator<OMElement> iter = detail.getAllDetailEntries(); while (iter.hasNext()) { OMElement detailEntry = iter.next(); iter.remove(); newSOAPFaultDetail.addDetailEntry(detailEntry);
private static AxisFault getAxisFaultFromFromSOAPFault(SOAPFault faultPart, RMMsgContext rmMsgCtx) { String soapFaultSubcode = null; SequenceFault sequenceFault = rmMsgCtx.getSequenceFault(); AxisFault axisFault = null; // If the sequence fault part is not null, then we have an RM specific fault. if (sequenceFault != null) { soapFaultSubcode = sequenceFault.getFaultCode().getFaultCode().getLocalPart(); //Need to concatenate all info about the error into string StringBuffer faultSB = new StringBuffer(); faultSB.append(soapFaultSubcode + " "); faultSB.append(sequenceFault.getFaultCode().getDetail() + " "); faultSB.append(faultPart.getDetail().getText()); axisFault = new AxisFault(faultSB.toString(), sequenceFault.getFaultCode().getFaultCode()); } else { axisFault = new AxisFault(faultPart.getCode(), faultPart.getReason(), faultPart.getNode(), faultPart .getRole(), faultPart.getDetail()); } return axisFault; }
private void createFaultDetail(SOAPFactory factory, SOAPFault soapFault, CougarFault fault, SoapOperationBinding binding) throws Exception { SOAPFaultDetail soapFaultDetail = factory.createSOAPFaultDetail(soapFault); FaultDetail detail = fault.getDetail(); if (detail != null) { List<String[]> faultMessages = detail.getFaultMessages(); if (faultMessages != null && faultMessages.size() > 0) { OMNamespace ns = factory.createOMNamespace(binding .getServiceBindingDescriptor().getNamespaceURI(), binding .getServiceBindingDescriptor().getNamespacePrefix()); OMElement faultNode = factory.createOMElement(detail.getFaultName(), ns); for (String[] msg : faultMessages) { OMElement messageNode = factory.createOMElement(msg[0], ns); messageNode.setText(msg[1]); faultNode.addChild(messageNode); } soapFaultDetail.addChild(faultNode); } if (FaultController.getInstance().isDetailedFaults()) { OMElement stackTrace = factory.createOMElement(new QName("trace")); stackTrace.setText(detail.getStackTrace()); soapFaultDetail.addChild(stackTrace); OMElement detailedMessage = factory.createOMElement(new QName("message")); detailedMessage.setText(detail.getDetailMessage()); soapFaultDetail.addChild(detailedMessage); } } }
public static Fault parseSoapFault(Element odeMsgEl, SOAPEnvelope envelope, Operation operation) throws AxisFault { SOAPFault flt = envelope.getBody().getFault(); SOAPFaultDetail detail = flt.getDetail(); Fault fdef = inferFault(operation, flt); if (fdef == null) { return null; } Part pdef = (Part) fdef.getMessage().getParts().values().iterator().next(); Element partel = odeMsgEl.getOwnerDocument().createElementNS(null, pdef.getName()); odeMsgEl.appendChild(partel); if (detail.getFirstChildWithName(pdef.getElementName()) != null) { partel.appendChild(odeMsgEl.getOwnerDocument().importNode( OMUtils.toDOM(detail.getFirstChildWithName(pdef.getElementName())), true)); } else { partel.appendChild(odeMsgEl.getOwnerDocument().importNode(OMUtils.toDOM(detail), true)); } return fdef; }
/** * Building the envelope with SOAP 1.1 * * @param faultMsgContext * @param data * @throws SandeshaException */ private static void doSOAP11Encoding(MessageContext faultMsgContext, FaultData data, String rmNamespaceValue) throws SandeshaException { SOAPEnvelope faultMsgEnvelope = faultMsgContext.getEnvelope(); if (faultMsgEnvelope == null) throw new SandeshaException(SandeshaMessageHelper.getMessage( SandeshaMessageKeys.soapEnvNotSet)); SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SandeshaUtil .getSOAPVersion(faultMsgEnvelope)); SOAPFault fault = faultMsgEnvelope.getBody().getFault(); SOAPFaultCode code = fault.getCode(); if (data.getCode()!=null) { code.setText(data.getCode()); } if (data.getExceptionString() != null) fault.getDetail().setText(data.getExceptionString()); //SequenceFault header is added only for SOAP 1.1 if (isSequenceFault(data)) addSequenceFaultHeader(faultMsgContext, data, factory, rmNamespaceValue); }
private void setFaultDetail(MessageContext synCtx, SOAPFactory factory, SOAPFault fault) { if (faultDetail != null) { SOAPFaultDetail soapFaultDetail = factory.createSOAPFaultDetail(); soapFaultDetail.setText(faultDetail); fault.setDetail(soapFaultDetail); } else if (faultDetailExpr != null) { for (Object obj : list) { if (obj instanceof OMNode) { soapFaultDetail.addChild((OMNode) obj); OMElement om = POXUtils.getOMFromXML(faultDetailExpr.stringValueOf(synCtx)); if (om != null) { soapFaultDetail.addChild(om); SOAPFaultDetail soapFaultDetail = factory.createSOAPFaultDetail(); for (OMElement faultDetailElement : faultDetailElements) { soapFaultDetail.addChild(faultDetailElement.cloneOMElement()); fault.getDetail().detach();