private Future invokeBPELProcessThroughODEMessageExchange( final MyRoleMessageExchange odeMessageExchange, final BPELMessageContext bpelMessageContext) throws AxisFault { Message request = createInputMessageToODE(bpelMessageContext, odeMessageExchange); if (log.isDebugEnabled()) { log.debug("Invoking ODE using MEX " + odeMessageExchange); log.debug("Message content: " + DOMUtils.domToString(request.getMessage())); } return odeMessageExchange.invoke(request, bpelMessageContext.getAttachmentIDList()); }
__log.trace("toNMS(odeMsg=" + odeMsg + ")"); Element srcMsgEl = odeMsg.getMessage(); Document doc = newDocument(); Element dstMsgEl = doc.createElementNS(URI_WSDL11_WRAPPER, "message");
SOAPUtils.parseResponseFromRESTService(partnerInvocationContext, odeMex); if (log.isDebugEnabled()) { log.debug("Response:\n" + (response.getMessage() != null ? DOMUtils.domToString(response.getMessage()) : "empty"));
assert partdef.getElementName() != null : "non-element part!"; if (odeMsg.getMessage() == null) { String errmsg = "Unknown fault: " + odeMsg.getType(); __log.debug(errmsg); Element part = DOMUtils.findChildByName(odeMsg.getMessage(),new QName(null, partdef.getName())); if (part == null) { String errmsg = "ODE message did not contain expected part: " + partdef.getName();
Element ode = odeMsg == null ? null : odeMsg.getMessage(); Element part = ode == null ? null : DOMUtils.getFirstChildElement(ode); Element firstPartEl = part == null ? null : DOMUtils.getFirstChildElement(part);
/** * Return a deep clone of the given message * * @param message * @return */ protected Message cloneMessage(Message message) { Message clone = createMessage(message.getType()); clone.setMessage((Element) message.getMessage().cloneNode(true)); Map<String, Node> headerParts = message.getHeaderParts(); for (String partName : headerParts.keySet()) { clone.setHeaderPart(partName, (Element) headerParts.get(partName).cloneNode(true)); } Map<String, Node> parts = message.getHeaderParts(); for (String partName : parts.keySet()) { clone.setHeaderPart(partName, (Element) parts.get(partName).cloneNode(true)); } return clone; }
private void invokeProbeService(PartnerRoleMessageExchange prmx) { Message msg = prmx.getRequest(); Element elm1 = prmx.getRequest().getPart("probeName"); Element elm2 = prmx.getRequest().getPart("probeData"); if ( elm1 != null && elm2 != null ) { String cat = elm2.getTextContent()+" -> "+elm1.getTextContent(); elm2.setTextContent(cat); msg.setPart("probeData", elm2); final Message response = prmx.createMessage(prmx.getOperation().getOutput().getMessage().getQName()); response.setMessage(msg.getMessage()); prmx.reply(response); } }
SOAPUtils.parseSOAPResponseFromPartner(partnerInvocationContext, odeMex); if (log.isDebugEnabled()) { log.debug("Response:\n" + (response.getMessage() != null ? DOMUtils.domToString(response.getMessage()) : "empty"));
case RESPONSE: response = processResponse(mex.getResponse().getMessage()); if (__log.isDebugEnabled()) __log.debug("Response message " + response);
private static OMElement buildSoapDetail( final BPELMessageContext bpelMessageContext, final MessageExchange odeMessageContext) throws AxisFault { Element message = odeMessageContext.getResponse().getMessage(); QName faultName = odeMessageContext.getFault(); Operation operation = odeMessageContext.getOperation(); SOAPFactory soapFactory = bpelMessageContext.getSoapFactoryForCurrentMessageFlow(); if (faultName.getNamespaceURI() == null) { return toFaultDetail(message, soapFactory); } Fault f = operation.getFault(faultName.getLocalPart()); if (f == null) { return toFaultDetail(message, soapFactory); } // For faults, there will be exactly one part. Part p = (Part) f.getMessage().getParts().values().iterator().next(); if (p == null) { return toFaultDetail(message, soapFactory); } Element partEl = DOMUtils.findChildByName(message, new QName(null, p.getName())); if (partEl == null) { return toFaultDetail(message, soapFactory); } Element detail = DOMUtils.findChildByName(partEl, p.getElementName()); if (detail == null) { return toFaultDetail(message, soapFactory); } return OMUtils.toOM(detail, soapFactory); }
public Void call() throws Exception { Status finalstat = mex[0].getStatus(); if (_invocation.expectedFinalStatus != null && !_invocation.expectedFinalStatus.equals(finalstat)) if (finalstat.equals(Status.FAULT)) { failure(_invocation, "Unexpected final message exchange status", _invocation.expectedFinalStatus, "FAULT: " + mex[0].getFault() + " | " + mex[0].getFaultExplanation()); } else { failure(_invocation, "Unexpected final message exchange status", _invocation.expectedFinalStatus, finalstat); } if (_invocation.expectedFinalCorrelationStatus != null && !_invocation.expectedFinalCorrelationStatus.equals(mex[0].getCorrelationStatus())) { failure(_invocation, "Unexpected final correlation status", _invocation.expectedFinalCorrelationStatus, mex[0] .getCorrelationStatus()); } if (mex[0].getResponse() == null) failure(_invocation, "Expected response, but got none.", null); String responseStr = DOMUtils.domToString(mex[0].getResponse().getMessage()); //System.out.println("=>" + responseStr); Matcher matcher = _invocation.expectedResponsePattern.matcher(responseStr); if (!matcher.matches()) failure(_invocation, "Response does not match expected pattern", _invocation.expectedResponsePattern, responseStr); return null; } });
for (Part p : parts) { Element partContent = DOMUtils.findChildByName( messageFromODE.getMessage(), new QName(null, p.getName())); if (partContent == null) { for (Part p : parts) { Element partContent = DOMUtils.findChildByName( messageFromODE.getMessage(), new QName(null, p.getName())); if (partContent == null) {
if (fault == null) { __log.error("process " + _bpelProcess + " instance " + _iid + " thrown unmapped fault in p2p communication " + m.getFault() + " " + m.getFaultExplanation() + " - converted to failure"); pmex.replyWithFailure(MessageExchange.FailureType.OTHER, "process thrown unmapped fault in p2p communication " + m.getFault() + " " + m.getFaultExplanation() + " - converted to failure", m.getFaultResponse().getMessage()); } else { Message faultRes = pmex.createMessage(pmex.getOperation().getFault(m.getFault().getLocalPart()) .getMessage().getQName()); faultRes.setMessage(m.getResponse().getMessage()); pmex.replyWithFault(m.getFault(), faultRes); case RESPONSE: Message response = pmex.createMessage(pmex.getOperation().getOutput().getMessage().getQName()); response.setMessage(m.getResponse().getMessage()); pmex.reply(response); break;