/** * Get payload from a given ODEMessage * @param odeMessage - the ODE message * @return the payload of the Message, as a DOM Element */ private Element getPayload(Message odeMessage) { Element payload = null; // Get the message parts - these correspond to the message parts for the invocation // as defined in the WSDL for the service operation being invoked List<String> parts = odeMessage.getParts(); if( parts.size() == 0 ) return null; // For the present, just deal with the ** FIRST ** part // TODO Deal with operations that have messages with multiple parts // - that will require returning an array of Elements, one for each part Element part = odeMessage.getPart(parts.get(0)); // Get the payload which is the First child if (part != null && part.hasChildNodes()) { payload = (Element)part.getFirstChild(); } return payload; } // end getPayload
private void populateSOAPBody(SOAPEnvelope soapEnvelope, PartnerRoleMessageExchange partnerRoleMessageExchange) { org.apache.ode.bpel.iapi.Message messageToSend = partnerRoleMessageExchange.getRequest(); if (messageToSend.getParts().size() == 1) { soapEnvelope.getBody().addChild(OMUtils.toOM( getPartContent(messageToSend.getPart(messageToSend.getParts().get(0))), soapEnvelope.getOMFactory())); } else { throw new IllegalArgumentException("HTTP Binding doesn't support multiple message part as the input."); } }
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); } }
if (messageFromOde.getPart(soapHeaderElementDefinition.getPart()) != null) { partElement = messageFromOde.getPart( soapHeaderElementDefinition.getPart()); } else { partElement = (Element) messageFromOde.getPart(soapHeaderElementDefinition.getPart()); } catch (ClassCastException e) { throw new BPELFault("Soap header must be an element" + messageFromOde.getPart (soapHeaderElementDefinition.getPart()));